It also matters greatly what image format you use. PNG takes a lot of CPU.
What I would do is not disable a core, but only copy to the main thread when
the image is done loading and needed.
Also look at QPixmapCache.
Also, if memory serves, QPixmaps are implicitly shared and don't need to be
copied between QThreads, but QImage isn't and must me copied.
________________________________
From: yuval tal <yuv...@boxee.tv>
To: qt-qml@qt.nokia.com
Sent: Wednesday, February 1, 2012 10:18 AM
Subject: [Qt-qml] Improve performance of image loading in QML on dual core
embedded systems
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
Qt-qml@qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-qml
_______________________________________________
Qt-qml mailing list
Qt-qml@qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-qml