[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