[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