confused about 'from current snapshot show only' checkbox

Memory profiling for .NET developers

Moderator: dom.smith

confused about 'from current snapshot show only' checkbox

Postby Steven Blachman » Fri May 02, 2014 1:54 am

I am a newbie, confused about the 'from current snapshot show only' checkbox. I am comparing a baseline snapshot and a later one, looking for objects created between the two snapshots and still present. These may or may not be leaks.

FWIW I have read the online documentation several times but am still confused.

With this checkbox unchecked it shows a comparison between the two baselines, some objects have more (positive numbers) instances, some have the same (0 delta) and some show fewer instances (negative numbers). Well and good.

However, with the check box checked and the 'New objects' buttton selected, I still see some positive, 0, and negative instance differences but these numbers are not the same as I see with the checkbox unchecked. What is the difference here?

With the check box checked and the 'Survivors in growing classes' buttton selected (which is what I thought I wanted to do) it only shows classes that have the same or fewer instances. I dont understand this either. How can I have negative survivors.

Thanks for your help!
investigator
Steven Blachman
 
Posts: 1
Joined: Fri May 02, 2014 1:37 am

Postby jessica.ramos » Tue May 06, 2014 12:02 am

Hi Steven,

So sorry for any confusion! The terms 'Survivors' and 'Survivors in growing classes', can definitely be misleading as you'd normally expect the number of survivors to grow or persist.

However, kindly consider the definition of a 'survivor': it is an object that was alive in the earlier snapshot and is still alive in the current snapshot. There will always be the same number of survivors or less in the later snapshot, because it's impossible to have a survivor created in between two snapshots. Thus the "surviving objects" and "survivng objects in growing classes" filters will always show instance differences of 0 or less. They are essentially showing how many objects from the earlier snapshot did not survive.

The instance difference values from the "survivng objects in growing classes" subset can then be used to distinguish leaks from objects that are being released at a slow rate. Classes with potential leaks are those with an instance difference of 0, which means that there are new objects of a class but none of the old ones have been released. If the difference is negative, then some of the objects are being released and the chances are that they're just being swapped in and out as part of normal processing.

Regarding the 'new objects' filter...

I may be missing something myself, but as far as I know it, the 'new objects' instance difference should always be >=0. Kindly bear with me and I'll check on this.

(Just some notes that you might find useful:

- The 'survivors' instance diff value is the number of objects from later snapshot that also exist in the earlier snapshot.
- The 'new objects' instance diff value is the number of objects from the later snapshot that do not exist in the earlier snapshot.
- Together, the 'survivors' and 'new objects' values sum up to the inst diff value (when no filters are applied))
Jessica Ramos
Technical Support
Red Gate Software Ltd.
jessica.ramos
 
Posts: 235
Joined: Mon Apr 23, 2012 1:13 pm

Postby jessica.ramos » Mon May 19, 2014 4:24 pm

Hi Steven,

Sorry for the delay!

Would it be possible for you to share your application that is showing negative 'new objects' values so that we can reproduce the problem in-house? If not, would you be able to share the results file?

Thanks!
Jessica Ramos
Technical Support
Red Gate Software Ltd.
jessica.ramos
 
Posts: 235
Joined: Mon Apr 23, 2012 1:13 pm


Return to ANTS Memory Profiler 8

Who is online

Users browsing this forum: No registered users and 0 guests