[Interest] Memory Leak when instantiating QWidget based windows

Konstantin Shegunov kshegunov at gmail.com
Thu Sep 8 12:55:12 CEST 2016


On Wed, Sep 7, 2016 at 11:23 PM, Mike Jackson <imikejackson at gmail.com>
wrote:

> We monitor the memory use before and after the loop using OS X's Activity
> monitor. At the end of the loop there is more memory being used than before
> the loop, by about 2~3MB worth.
>

This isn't reliable. Consider the following C++ only code:

int main(int argc, char ** argv)

{

    struct X;

    X * x = nullptr;


    struct X {

        int data[1024];

    };


    for (qint32 i = 0; i < 100000; i++)  {

        x = new X[1024];

        delete x;

    }

    return 0;

}


In the KSysGuard (KDE's system monitor) I observe for the memory
consumption: 12 908k, 23 048k shared before the loop and 12 944k, 25
112k shared after the loop. There isn't a leak here, yet there's a
difference. The OS's heap manager may free the memory immediately, may
cache it, or hold on to it. Ultimately it's out of your control,
that's why you should use a code analyzer (like valgrind to track
leaks).


Kind regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160908/ccd8ed8c/attachment.html>


More information about the Interest mailing list