diff options
author | Gunnar Sletta <gunnar@sletta.org> | 2016-11-08 12:47:25 +0100 |
---|---|---|
committer | Gunnar Sletta <gunnar@sletta.org> | 2016-11-10 11:32:23 +0000 |
commit | 08a9fc04989aa05d4cc8c44430977d23cc729656 (patch) | |
tree | c4478c4e89276fc5d53410644150a4f228623a1d /src/quick/items | |
parent | a23bcdf91971510b79c541fdff4a9467ead08751 (diff) |
Change implementation of shadow nodes to use a double-linked list
Since eea8fa64ab27854b71f46ef143e35b6c9acbba14, we're seeing increased
times in QSGNode::removeChildNode(). The reason for this seems to be
that iteration through the linked list is significantly slower than
iteration through a QList<> due to that each node needs to be loaded
in memory to iterate to the next, compared a more plain sequential
pointer compare with QList<>.
This implementation changes the nodes to use a circular double-linked
list so we can drop the iteration when removing nodes. This brings us
slightly better performance than the original QList based
implementation while still using the same amount of memory as the
single-linked list one.
Change-Id: I0b693730f5b82ad7767e507accafd90551e03fbc
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/quick/items')
0 files changed, 0 insertions, 0 deletions