diff options
| author | Marc Mutz <marc.mutz@qt.io> | 2024-05-03 11:24:09 +0200 |
|---|---|---|
| committer | Marc Mutz <marc.mutz@qt.io> | 2024-05-15 18:22:39 +0200 |
| commit | d31054c31456bc840061089e37e956ad815215c6 (patch) | |
| tree | 2748018cd7fa0512a7028bbfeb18622954556d0b /src/tools/uic/cpp/cppwriteinitialization.cpp | |
| parent | bf96c45f94d840f15c71e0630f9f9c3f8ef8bc6a (diff) | |
QMetaType: make sequence, pair adapters SCARY
Extract (non-template) Methods from template functions and pull them
behind the ABI boundary to avoid re-compiling the same code multiple
times ("SCARY").
In this particular case, the extracted code contains
QMetaType::fromType() calls, which, taken together, were responsible
for at least 91s of the ~8250s total time for a qt5.git-wide
headersclean_check (1.1%):
Says Clang -ftime-trace:
$ grep fromType hc*.txt
hc-00-baseline.txt: 32122 ms: QMetaType::fromType<QIterable<QMetaAssociation>> (1240 times, avg 25 ms)
hc-00-baseline.txt: 31717 ms: QMetaType::fromType<QIterable<QMetaSequence>> (1240 times, avg 25 ms)
hc-00-baseline.txt: 23531 ms: QMetaType::fromType<QtMetaTypePrivate::QPairVariantInterfaceImpl> (1240 times, avg 18 ms)
hc-00-baseline.txt: 91143 ms: QMetaType::fromType<$> (6440 times, avg 14 ms)
# QIterable<QMetaSequence> out-of-lined:
hc-01-meta-seq.txt: 29869 ms: QMetaType::fromType<QIterable<QMetaAssociation>> (1240 times, avg 24 ms)
hc-01-meta-seq.txt: 21618 ms: QMetaType::fromType<QtMetaTypePrivate::QPairVariantInterfaceImpl> (1240 times, avg 17 ms)
hc-01-meta-seq.txt: 55029 ms: QMetaType::fromType<$> (5025 times, avg 10 ms)
# QIterable<QMetaAssociation> out-of-lined:
hc-02-meta-ass.txt: 21689 ms: QMetaType::fromType<QtMetaTypePrivate::QPairVariantInterfaceImpl> (1240 times, avg 17 ms)
hc-02-meta-ass.txt: 25224 ms: QMetaType::fromType<$> (3799 times, avg 6 ms)
# QPairVariantInterfaceImpl out-of-lined:
<crickets>
Amends 01fb843af88d949cd38b494a60bb64b730a045d2 (sequences),
87e27eb870d08ee8953cc9b350ed29c5b3e4f785 (associations),
b88b09fb16754c5057b781d1b625855f75b22aee (pairs).
Task-number: QTBUG-97601
Change-Id: If34cf94703a203bc231f1bac656d2f5278bbd8f8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/tools/uic/cpp/cppwriteinitialization.cpp')
0 files changed, 0 insertions, 0 deletions
