Hi,

We found that QML applications occupy more than 50% more memory than Widget
applications. We have sorted out QML demo and Widget Demo that use similar
controls. Now we would like to consult and discuss the reason for this and
whether there is an optimization plan.

This is a rather coarse statement. In order to optimize something we first have to figure out where exactly the memory is used.

My first question would be how you have measured the memory usage. Measuring memory usage is not trivial after all. For example, in QML we use mmap() to map compilation units from disk into memory. In case of memory pressure, they will be transparently paged in and out by the OS. Therefore we do not take special care to aggressively unmap them manually. Does this count as memory usage?

Second, you are using Qt Quick Controls 1. This is known to be inefficient. You should use Qt Quick Controls 2 instead.

The general direction for optimization of QML is to compile to C++ ahead of time. In order to do so, you have to use CMake and qt_add_qml_module. However, you won't save a lot of memory that way, yet. Only when qmltc-generated code will be able to directly call the C++ bindings generated by qmlsc we will be able to omit the byte code from the compilation units and (optionally) drop the interpreter and JIT from QtQml.

best regards,
Ulf Hermann
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to