summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data
diff options
context:
space:
mode:
authorJan-Arve Sæther <jan-arve.saether@nokia.com>2010-11-18 14:06:45 (GMT)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>2010-11-19 08:27:03 (GMT)
commita26d41fc2732e225dc9a1b5eb5224cc499ae87b4 (patch)
tree63cb1852413bd389a5d081d8976f0baba7ea3ffc /tests/auto/declarative/qmlvisual/qdeclarativemousearea/data
parent68fc0a299b9268007ae68f5d8a8dce40ed1e4e0c (diff)
downloadQt-a26d41fc2732e225dc9a1b5eb5224cc499ae87b4.zip
Qt-a26d41fc2732e225dc9a1b5eb5224cc499ae87b4.tar.gz
Qt-a26d41fc2732e225dc9a1b5eb5224cc499ae87b4.tar.bz2
Improve performance of hfw in qgridlayoutengine by adding more caching.
The previous code tried to do caching of queries with constraints too, but it's usecase was rather limited. The caching worked for the simple case of effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); // uses cache The problem was that if somebody called this sequence: effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(-1, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); Each call would disregard the cache because the constraint was different. Now the pattern is used in the qgridlayoutengine itself when we calculate hfw: (yes, height-for-width). First, we ask for the horizontal size hints with no constraints. Then, we'll ask for the vertical size hints with constraints. Since horizontal and vertical ultimately comes from the same function (effectiveSizeHint) it will invalidate the cache each time. The solution is to add another cache for the sizeHints with constraints. The most notable improvement is in the hfw, nested case. Result: RESULT : tst_QGraphicsLinearLayout::heightForWidth():"hfw, nested": 546 msecs per iteration (total: 546, iterations: 1) RESULT : tst_QGraphicsLinearLayout::heightForWidth():"hfw, nested": 0.000029 msecs per iteration (total: 62, iterations: 2097152) Improvement: 18,827,586 times faster (!!)
Diffstat (limited to 'tests/auto/declarative/qmlvisual/qdeclarativemousearea/data')
0 files changed, 0 insertions, 0 deletions