[Interest] Strategies to debug and improve UI performance (QML)

NIkolai Marchenko enmarantispam at gmail.com
Mon Oct 23 16:07:37 CEST 2023


I was just recently doing exactly this, here's what I did:

1) Watch this excellent presentation by Guiseppe D'Angelo:
https://www.youtube.com/watch?v=3g4mOq9doIo
2) Download gammaray from KDAB, this will let you see what is what on your
scene and which signals are being (overenthusiastically) emitted and which
objects exist in which quanitties
3) Do NOT use qt creator for profiling c++ side, instead use perf + hotspot
combination to see where the app is stalling the most
4) DO use qml profiler in qt creator for profiling qml side, it will show
you which functions in qml are taking valuable time
5) There's some really fishy behaviour with clipping that might trip up
your batching, in our case a custom line edit with a clipping behaviour
ensured every Text entity is a separate draw call.
6) Make sure your application isn't stalling on qwaitconditions due to
overenthusiastic asynchronicity

P.S. These are the reference materials I used while figuring stuff out
myself:

https://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html
http://imaginativethinking.ca/qt-quick-performance-tips-rectangles/
https://doc.qt.io/qt-5/qtquick-performance.html
https://doc.qt.io/qt-5/qml-qtqml-workerscript-workerscript.html#details
http://mirror.thecust.net/meego_1.2_harmattan_developer_documentation/html/guide/html/Developer_Library_Best_practices_for_application_development_QML_performance_tips_and_tricks.html
https://doc.qt.io/qt-6/qtquick-bestpractices.html
https://doc.qt.io/qt-5/best-practices.html

On Mon, Oct 23, 2023 at 4:22 PM Nuno Santos <nuno.santos at imaginando.pt>
wrote:

> Hi,
>
> I want to perform a UI optimisation. I would like to know how many items
> are being instantiated, and who is taking more time to load, etc
>
> Are there ENV variables and tools that could help in this task?
>
> I would love to hear your thoughts.
>
> Best regards,
>
> Nuno
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20231023/9c0665cb/attachment.htm>


More information about the Interest mailing list