Hi,

I was testing Qt4.8/QML performance on a dual-core embedded system. I
created a grid with 200 items and showed 21 items in the grid. I noticed
that while I scroll, the performance wasn’t so good. After doing a lot of
digging and comparison I got to some conclusion which is a bit odd: during
scroll, core 0 is running at 100%. That’s fine. The low priority thread
that loads the images was running on core 1. This means that the fact that
it has a lower priority is meaningless as core 1 was mostly idle so the
scheduler was actually letting it run. Every time it finished decoding an
image, it copied it to the main thread, which caused a hick-up. I disabled
core 1 and scroll performance was MUCH better and images were decoded only
when I was not scrolling.

I think a good idea would be to set the affinity of these two threads to
the same CPU. That’s a temporary fix. I think that a better fix would be
that the image loader, would not immediatelly return the job upon complete,
but wait for a good time (when no animations are running for example) to
copy the images to the main thread. Anyone has other ideas?

Give it a try if you are facing the same issue. If you want to disable a
core on linux do the following:

echo 0 > /sys/devices/system/cpu/cpu1/online

-Yuval
_______________________________________________
Qt-qml mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt-qml

Reply via email to