[Development] QTBUG-43096 - QML instantiation performance decadence

Uwe Rathmann Uwe.Rathmann at tigertal.de
Fri May 25 13:12:27 CEST 2018


Hi all,

this morning I got a notification about
https://bugreports.qt.io/browse/QTBUG-43096
being closed. I guess many applications had been hit by this issue, but
as I was related to the project that created this bug I would like to
give my summary of what has happened since then:

a)

On the Qt development side a lot of efforts have been made to improve
the QML problem. I don't want to be disrespectful, but the fact, that
Controls 1 has finally become deprecated, because of ( IIRC )
"insolvable performance problems", it is fair say, that those were no
game changers.

So to me the only step that really matters was introducing Qt/Quick 
Controls 2.

But what makes Controls 2 being superior compared to its predecessor ?
AFAIK the answer is mostly about doing less QML, achieved by:

- dropping features ( usually desktop related )
- internally done in C++

Of course this raises the question, why there is no offer for doing more
in C++ on the application side, when it has been identified as the
solution for implementing the controls ?

And this is why I'm disappointed about Controls 2. Application code still 
has to be done in QML and when the majority of the GUI code is
application code the benefits of Controls 2 are limited.

b)

On our side the the decision was made to go back to Qt 5.1, where the
project is stuck until today.

Almost all developers of the original team are gone - none
of them recommending QML as technology for further projects. Even worse
- some of them explicitly mentioned QML being a reason for leaving.

So for the next generation of our product we started to implement our
own framework on top of the C++ part of Qt/Quick (
https://github.com/uwerat/qskinny ). Our user interface today consists
about ~200K lines of code ( pure C++ ) and so far I can say that the
typical problems of having a bad startup performance or the heavy memory
footprint simple don't exist.

Unfortunately we still have to maintain our previous product written in
QML for many years. Maybe we can migrate it step by step to our new 
framework.

With all respect,
Uwe




More information about the Development mailing list