Details
-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
5.2.0, 5.3.0, 5.4.0 RC
-
None
-
Any, for example desktop linux.
Description
QML element instantiation performance has dropped dramatically from Qt 5.1.1 (30..80%).
My assumption it relates to the V4 change but that is to be verified.
The issue relates to component instantiation and affects application startup and most,
if not all, later dynamic component instantiation when application is running.
The issue is real, severe, measurable and repeatable.
It has been verified on several ARM platforms and desktops with both X11 and EGLFS QPA.
The issue affects all Qt versions starting from and including 5.2. It has been verified
to occur with several real world applications as well as mickey mouse clock applications.
This is a severe problem for embedded usecases where we don't afford to keep all UI pages
or elements in-memory, effectively rendering QML unusable after 5.1 on embedded platforms.
No potential runtime performance improvement on javascript side compensates this kind of drop
in instantiation performance.
I have attached two testruns of tst_librarymetrics_performance performed on Fedora with
5.1.1 and 5.3.1. They provide pretty good repeatibility and overview of the problem.
As stated the issue is not specific to this testcase. Please note that you need to have
the following patches to run the tests,
on Qt 5.3.1:
https://codereview.qt-project.org/#/c/101048/
on Qt 5.1.1:
https://codereview.qt-project.org/#/c/60445/1/src/quick/items/qquickitemsmodule.cpp
Also for example qtquickcontrols gallery example will do.
Attachments
Issue Links
- relates to
-
QTBUG-51597 QML compile time optimizations for global object
- Open
For Gerrit Dashboard: QTBUG-43096 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
101648,3 | Avoid string-based connect in QQuickImageBase. | 5.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
101713,5 | Cache baseUrl at QQmlEngine creation time. | dev | qt/qtdeclarative | Status: ABANDONED | 0 | 0 |
101897,6 | Simple cache of url for QQmlCompiledData | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
107163,2 | WIP: Remove QHash of nodes from batch renderer. | dev | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
247726,3 | Fix tst_librarymetrics_performance benchmark | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |