Revision d77e169...
Go back to digest for 24th November 2013Optimization in KDE-PIM
Use QVector for TreeItem child management
This merges a series of commits which try to improve the speed efficiency of
child housekeeping for the in-memory tree which is maintained by the IMAP model.
This is deliberately not squashed into a single commit so that we can later take
a look at which data structure is actually the best one.
Both QVector and std::vector are close contenders; however, in our case QVector
appears to be *slightly* better -- an empty QVector only takes 8 bytes, while an
empty vector takes 24 bytes on my amd64 system. This is a useful optimization on
huge mailboxes as chances are that only a very small subset of messages will be
needed any given time.
std::vector offers slightly better performance, but I'll take the small memeory
saving in this context, I guess.
REVIEW: 114013