# Bytes in all Heaps lower than Gen 0 Heap Size

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

Comments

  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
Sign In or Register to comment.