Important: Please read the Qt Code of Conduct -

Performance improvement using Qt Quick Compiler

  • Hello, I'm creating an application that must be able to manage effectively a lot of panels/dialogs (500 and more) and in this moment I'm focusing in performance problems using Qt.createComponent and Qt.createObject APIs. In particular I'm investigating if the use of Qt Quick Compiler can improve performance in panels/dialogs creation.

    To investigate this topic I have developed, using Qt 5.5 Enterprise Edition, a simple test program that in a for loop invokes the Qt.createComponent() and the Qt.createObject() foreach panel/dialog to create:

    for(var i=0 ; i< 500; i++)
    var qmlFile = "qrc:/qml/DTSControlPanel_"+ i + ".qml"
    panels[i] = Qt.createComponent(qmlFile)

    and subsequently

    for(var i=0 ; i< panels.length; i++)
    panels[i].createObject(appWindow, {"x": startX, "y": startY});

    This code has been compiled using either not using Qt Quick Compiler and runned to get performance data.
    The results are for my understanding a little bit strange, in fact contrary to my expectations the application built with Qt Quick Compiler is less performant than the one compiled without Qt Quick Compiler.

    Can anyone suggest me a possible explanation of this behaviour?

    Many thanks.

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    I'd recommend bringing this question to the interest mailing list. You'll find there Qt Quick Compiler's developers/maintainers. This forum is more user oriented.

  • Hi and thanks for the quick answer.

    I'm trying to browse the link that you provided ( but seams that the web server is down.

    Is this web address correct?

    Many thanks.

  • Lifetime Qt Champion

    Yes it is. It seems there's been a glitch but the server is back.

  • Probably, QML Profiler is your tool of the week :)

  • I made some experiments with QtQuickCompiler because we had / have a serious performance problem in our application which loads a lot of elements using loaders and repeaters.

    I expected a lot of speedup from using the QtQuick Compiler but was disappointed of the results we got. The speedup was very small at startup time and the problem we initially intended to solve was not solved.

    I used the profiles which comes with the QtCreator to get more information and it turned out that the time spend at startup to compile the QML and JS files was very short, compared to the time which was spend to establish the bindings and to draw the objects. I think the speedup was in the range of 5-8% in the end which was far less than we hoped to achieve.

    The solution we came up was to use delayed loading and element creation to give the user instant feedback that something is happening and the show important things firt and the other things as soon as they are available.

Log in to reply