QtWS15- A deep dive into QML memory management internals, Frank Meerkötter, basysKom GmbH
Qt World Summit 2015, OCTOBER 5-7, BERLIN, GERMANY
A deep dive into QML memory management internals:
Thanks to garbage collection, memory management in QML is (mostly) automatic. The application developer is relieved from the error prone task of manually taking care of memory. The drawback to this convenience is a distinctive loss of control over the handling of memory by the application developer and an overall intransparency towards the resource memory. The typical QML developer does not (and should not have to!) know about the internals of the engine. Still, given a demanding setup, the situation might arise where one needs at least a conceptual understanding of the implementation.
The goal of this talk is to have a look into the black box “QML memory management” and to provide an overview on how it works internally. The talk will address questions such as:
- What for does the QML-engine need memory at all?
- Where do QML items live?
- How does the QML engine acquire its memory from the operating system?
- How is the memory managed which has been acquired by the engine?
- How does the garbage collector work?
- Why keeps the memory usage of my QML process growing?
- Why is it so hard to give memory back to the operating system?
- How has the QML memory management evolved over time - starting with Qt5.2 and introduction of the V4 engine up to today?
- What is the right tooling to profile QML memory usage?
Understanding these topics provides the basis for informed design and architecture decisions. This is especially important when developing for memory constrained environments such as embedded systems. The talk will also present some hands-on tweaks and options on how to address certain problematic memory behaviors of the QML engine.
Video by Qt Company and greenwoodworx, www.greenwoodworx.com