Fix performance regression caused by SG signals in QQuickItem.
authorGunnar Sletta <gunnar@sletta.org>
Tue, 2 Sep 2014 09:49:50 +0000 (11:49 +0200)
committerGunnar Sletta <gunnar@sletta.org>
Wed, 3 Sep 2014 07:16:14 +0000 (09:16 +0200)
commit0de680c8e8fab36e386dca35e5008ffaa27e8ef6
tree36ef99752bd8f255d89d9a6f3635655dd857e94e
parent978ecab8b5dc20384cb449e05d58293f96722c0e
Fix performance regression caused by SG signals in QQuickItem.

For a testcase with thosands of items, I measured an increase
in shutdown time from 800ms to 7500ms, all spent in disconnect().
This is not acceptible, so we're choosing a different approach.

If items implement a invalidateSceneGraph slot, this function
will be called during shutdown. It should be made a proper virtual
in Qt 6. This approach costs very little.

Change-Id: I5970143cc0a0744955687e17586f0bb00c9afb26
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
14 files changed:
src/quick/items/context2d/qquickcanvasitem.cpp
src/quick/items/context2d/qquickcanvasitem_p.h
src/quick/items/qquickframebufferobject.cpp
src/quick/items/qquickframebufferobject.h
src/quick/items/qquickimage.cpp
src/quick/items/qquickimage_p.h
src/quick/items/qquickitem.cpp
src/quick/items/qquickitem.h
src/quick/items/qquickpainteditem.cpp
src/quick/items/qquickpainteditem.h
src/quick/items/qquickshadereffectsource.cpp
src/quick/items/qquickshadereffectsource_p.h
src/quick/items/qquickwindow.cpp
tests/auto/quick/qquickitem/tst_qquickitem.cpp