path: root/tests/global
diff options
authorMilian Wolff <>2012-09-03 18:06:17 +0200
committerQt by Nokia <>2012-09-05 03:02:59 +0200
commit0102f34f1ebe91aaff6fb2edc83a7ebf7ffb4d1e (patch)
tree8e2b3e7fc3549e69be6d089c19692f881b20b66b /tests/global
parent3fe5715b9a46ba13137b21d5ea8288ac8b538268 (diff)
Optimize QTextLayout/QTextEngine usage outside of QTextDocument.
When QTextLayout is used in a QTextDocument, many code paths use special caches and thus greatly outperform the raw QTextLayout version that operates directly on a QString. This patch brings some of these optimizations also to the raw version. We now also use a QFormatCollection in such cases and enable the functionality of QTextEngine::indexAdditionalFormats() and QTextEngine::resolveAdditionalFormats(). Thanks to that, we can greatly speed up QTextEngine::format(), which now uses an amort O(1) hash table lookup instead of a O(N) linear search. The added benchmark shows a gain in the order of one magnitude: ./tst_bench_QText formattedLayout:long-many before applying the patch: 378.19 msecs per iteration (total: 37,820, iterations: 100) after applying the patch: 25.80 msecs per iteration (total: 2,580, iterations: 100) Note: This change is source-incompatible for applications using the private QTextEngine API. Task-number: QTBUG-8389 Change-Id: Ifcf7a8902a394428979ea06a6d955f886ee739c7 Reviewed-by: Konstantin Ritt <> Reviewed-by: Olivier Goffart <> Reviewed-by: Lars Knoll <>
Diffstat (limited to 'tests/global')
0 files changed, 0 insertions, 0 deletions