aboutsummaryrefslogtreecommitdiff
path: root/src/core/kconfigdata.cpp
diff options
context:
space:
mode:
authorMilian Wolff <mail@milianw.de>2014-06-19 12:21:41 +0200
committerMilian Wolff <mail@milianw.de>2014-06-19 12:21:41 +0200
commit9aeacb07b1169fa3dc9b7653e8f30070a91569d5 (patch)
tree711b513326fb9c459a8b9a6fb7e64517e2022351 /src/core/kconfigdata.cpp
parent9a5d6523689067a9cde717a8f375d4eca246b119 (diff)
downloadkconfig-9aeacb07b1169fa3dc9b7653e8f30070a91569d5.tar.gz
kconfig-9aeacb07b1169fa3dc9b7653e8f30070a91569d5.tar.bz2
Optimize KConfigIniBackend::parseConfig by reducing allocations.
Yet another awesome application of the Qt implicit sharing trick. Since config files often contain only few different keys and even value strings, we can share them. This reduces memory consumption and also speeds up parsing, as we do not have to allocate the duplicated strings, but can simply reuse the previous values. The most extreme case for this of my knowledge, is KatePart: katesyntaxhighlightingrc has more than 20k lines which triggered nearly 30k allocations on startup. With this patch applied, this value goes down dramatically. I added a simple static counter for the cache hit/miss ratio, which resulted in 5442 cache misses compared to 43624 cache hits across all KConfig files parsed by kwrite. REVIEW: 118587 This is a forward-port of b8aaeff128233cfaecf67899168887572589dde8.
Diffstat (limited to 'src/core/kconfigdata.cpp')
0 files changed, 0 insertions, 0 deletions