Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2016-03

heaptrc and high RAM usage

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Felipe Monteiro de Carvalho

Hello,

I have an app that is using too much RAM and I am trying to figure out which structures are using how much RAM.

Note that this is not a leak, everything is freed nicely when the app closes, so I am resorting to putting DumpHeap() calls somewhere. The app has multiple threads and is fairly large so it is not trivial to guess who is responsible.

Using DumpHeap() I do get some results like this:

626944 memory blocks allocated : 17619122/20768760 626799 memory blocks freed : 17602699/20752144 145 unfreed memory blocks : 16423
True heap size : 688128
True free heap : 639696
Should be : 641352
.........
Call trace for block $0B019488 size 88
$0048262C line 419 of <whatever unit>
$0048246C line 394 of <whatever unit>
$00485A7D line 1165 of <whatever unit>
$0072FA33 line 2927 of <whatever unit>
$007F65BE line 120 of <whatever unit>
$004C0278
$0072FA33 line 2927 of <whatever unit>
$007F65BE line 120 of <whatever unit>
Marker: global

But the information is so small. I have an excess of 100MB RAM usage according to "task manager" in Windows 7, but heaptrc just shows a few blocks like the one above and no mention of how many times this block repeats itself ...it doesn't sum up 100MB, so I can't figure out how much RAM each block is using. "size 88" isn't very helpful, if it uses only 88 bytes it surely can't be the guilty one.

Any ideas if I should try something else instead of heaptrc? Or any other ideas about what to do?

thanks,

Felipe Monteiro de Carvalho