[Interest] Memory Leak when instantiating QWidget based windows

Andy asmaloney at gmail.com
Thu Sep 8 14:56:03 CEST 2016


Mike:

If you haven't already tried it, using Qt Creator in combination with
valgrind works really well to track these kinds of things down.

The basics:

  1) install valgrind (I used homebrew)
  2) point Qt Creator at it in the prefs (Analyzer->Valgrind)
  3) Click the Debug tab, set the tool to Memcheck, and click the start
button (little green arrow)

After it runs your application (slowly), it will spit out a bunch of info
about memory leaks that make it pretty easy to track down the problems.




---
Andy Maloney  //  https://asmaloney.com
twitter ~ @asmaloney <https://twitter.com/asmaloney>


On Thu, Sep 8, 2016 at 6:55 AM, Konstantin Shegunov <kshegunov at gmail.com>
wrote:

>
> 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.
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160908/fb08a809/attachment.html>


More information about the Interest mailing list