# Bytes in all Heaps lower than Gen 0 Heap Size

Memory profiling for .NET developers

Moderators: StephenC, Alex.Davies, AndrewH, melvyn.harbour

# Bytes in all Heaps lower than Gen 0 Heap Size

Postby John Doe » Tue Sep 15, 2009 1:30 pm

Hallo,

I have couple of questions:

1)
My '# Bytes in all Heaps' is lower than 'Gen 0 Heap Size'.
is that possible or is it a bug?

2)
How come sometimes when I'm calling GC.Collect() - for test purpose - the 'Gen 0 Heap size' increases?


thanks

Cavin
John Doe
 
Posts: 10
Joined: Tue Sep 15, 2009 12:56 pm

Postby Alex.Davies » Tue Sep 15, 2009 2:09 pm

Do you mean the "bytes in all heaps" graph in the Session Overview tab, or the line on the Timeline? If you mean the Timeline, that's expected, because the performance counters take a little while to update.

If it is the graph on the Session Overview tab, I'd be interested to see a screenshot.

Thanks!
Alex
Developer,
Red Gate .NET Tools
Alex.Davies
 
Posts: 335
Joined: Tue Dec 02, 2008 12:23 pm
Location: Cambridge, uk

Postby John Doe » Tue Sep 15, 2009 2:37 pm

Hallo Alex,

thanks for your reply.

i meant the graph in the time line.

Do you have a clue how come the momory increase when I'm making a snapshot.
If I understand it correct, so a snapshot always first call the CG.Collect() isn't it?
So shouldn't it be like this, that the memory either decrease or stays (but not increases) ?

greetings.

Cavin
John Doe
 
Posts: 10
Joined: Tue Sep 15, 2009 12:56 pm

Postby Alex.Davies » Tue Sep 15, 2009 2:40 pm

This is for the same reason: the "bytes in all heaps" performance counter has become out of date. In fact, the actual memory usage almost certainly goes down when you take a snapshot, but the memory used was higher than the performance counter indicated. The snapshot forces the performance counter to update, so it appears to go up.

Have a look at the "private bytes" counter. It often updates more reliably.
Alex
Developer,
Red Gate .NET Tools
Alex.Davies
 
Posts: 335
Joined: Tue Dec 02, 2008 12:23 pm
Location: Cambridge, uk

Postby John Doe » Tue Sep 15, 2009 2:48 pm

thanks.

so if I understand you correct, the timeline is in generall not reliable and I should only use or count on the Analysis / Session Overview tabs.

one more question: are private bytes located in a specific Heap or can they be in different locations? (could they acceed the 'Bytes in all Heaps' ?)

lovely greetings

Cavin
John Doe
 
Posts: 10
Joined: Tue Sep 15, 2009 12:56 pm

Postby Alex.Davies » Tue Sep 15, 2009 2:51 pm

Yes, the timeline is intended as a rough overview, and the rest of the application is correct when they disagree.

Private bytes can be on any heap, and also includes unmanaged memory usage (for example the CLR itself).
Alex
Developer,
Red Gate .NET Tools
Alex.Davies
 
Posts: 335
Joined: Tue Dec 02, 2008 12:23 pm
Location: Cambridge, uk

Postby John Doe » Tue Sep 15, 2009 2:54 pm

ok,

I think that for now all my questions are answered.
thank you.

now I just need to find the memory leaks...

have a lovely day and see you online

Cavin
John Doe
 
Posts: 10
Joined: Tue Sep 15, 2009 12:56 pm


Return to ANTS Memory Profiler Previous Versions

Who is online

Users browsing this forum: No registered users and 0 guests