Revision 9a5d652...

Go back to digest for 22nd June 2014

Optimization in KDE Base

Milian Wolff committed changes in [kconfig] src/core/kconfig.cpp:

Optimize KConfigGroup::exists and similar operations.

Before, these kind of read-only operations did a lot of allocations:

1) allocate a list of all sub groups
2) for the above, also allocate a sub-group match key
3) iterate over sub groups, allocate a list of all keys in there
and then finally check whether that list is non-empty

All of the above is now done without a single allocation, by simply
iterating over the list of entries.

Note: The whole list was iterated even before in allSubGroups. Now
we still do that, but check for non-empty keys in the group or
sub group directly. Much more efficient.

Note2: While at it, allSubGroups is also optimized to not require the
allocation of the subgroup match key.

REVIEW: 118586

forward-port of commit eaffd50adfd7fcbeafadb0248904176808b4499d

File Changes

Modified 1 files
  • src/core/kconfig.cpp
1 files changed in total