Any actual documentation on the profiler?

GVxGVx USMember ✭✭✭

Yes I know there is a small write up on the website but I am talking about documentation on every single part of the application.

For example what does LIVE mean, why do some items in the class field have a blue dot on the very left and most don't... What's the difference between the startup options of Allocations and Memory... Do you really need to keep taking snapshots until Object Growth equals 0 to then start finding whats leaking... What does Size Growth represent... What does -3 represent in Object growth... When viewing a snapshot whats the little blue thing in the size column, some have it, others dont... What does Paths to roots mean and how does it help me... When i want to compare snapshots should i stop running the app or does it not matter... So I take a snapshot #1 and then five more snapshots, now what, I am supposed to find memory leaks how?

You know, some proper knowledge rather than a simple example which shows a very simple case on how to use the app...

Oh, it's enterprise only is it? Hence nobody is using it so it doesn't need proper documentation ?? wonderful.....

Best Answers

  • RodrigoMoyaRodrigoMoya ES Xamurai
    Accepted Answer

    @batmaci said:
    @RodrigoMoya quick questions please.

    1) what is the difference between blue and no color dot as shown below?

    blue means "user code", the other is "system libraries". As mentioned before it is not super accurate.

    2) What is Retained column standing for? for some it is 0.

    this is the size of the objects referenced by the selected allocation and all the references from those objects. That is, it means "amount of memory retained by this object". It's very useful to see if an object is the responsible for keeping a lot of objects in memory. Combined with the path to roots feature, it allows you to find possible leaks.

    3) for example screenshot above I have System.Byte using highest memory consumption. when i double click on it. i see bunch of memorystrems. How will I know what are those? I am assuming those are images but is there a way to understand it

    it's hard to know where they come from by just looking at the list, you should have a look at the right side inspector area, which has several tabs, one of them being a stack trace view, which shows where that object was allocated. And also, the path to roots view allows you to see what is keeping that object alive. So, looking at those and knowing your code, you should be able to see where that object was allocated, by whom, what's keeping a reference to it, etc.

    4) according to screenshot below. my real memory consumption is 116mb? or 276mb what is the difference between memory consumption and working sets?

    Memory allocated is the managed memory your application has allocated (or the total memory allocated by the objects being displayed on the left side list). The other stats (the ones on the right) are about your process. A short explanation of it is here -> https://technet.microsoft.com/en-us/library/cc958292.aspx

    Look at memory characteristics of processes using the Process\Working Set and Process\Private Bytes counters. The Working Set counter reports the amount of committed memory allocated to the process. This might include shared and private bytes currently residing in physical memory. The Private Bytes counter reports memory allocated exclusively to the process. Working set monitoring is important because, when memory is in short supply, the operating system trims the working sets of processes and paging occurs. (The working set of a process is the amount of physical memory assigned to that process by the operating system.)

Answers

  • GVxGVx USMember ✭✭✭

    oh cool... your response is very much appreciated... I have a better idea of what I am looking for now... :)

    @RodrigoMoya said:
    We don't have much documentation, sorry :( I'll take this opportunity to raise it to our docs team.

    • what do you mean by 'startup options of allocations and memory'?

    oh cool... your response is very much appreciated... I have a better idea of what I am looking for now... :)

    When the profiler starts up it has 4 options.... One is 'Allocations - Analyzes the memory usage by tracking object allocations' and another is 'Memory - Find memory-related problems'... I was confused as to what the difference is.. ??

  • RodrigoMoyaRodrigoMoya ESXamarin Team Xamurai

    Yes, we need some better clarification there I guess. That list shows "templates", which are a combination of 1 or more instruments. Right now, we only have 3 instruments (Allocations, Time and Cycles), so the templates each correspond to each of these instruments, except for 'Memory', which includes Allocations and Cycles instruments.

    This feature is there so that, when we have more instruments, we show templates for the combinations of them that make more sense, and, in a not too distant feature, allow the user to create his/her own templates. So, again, maybe we should make it clearer

  • batmacibatmaci DEMember ✭✭✭✭

    @RodrigoMoya quick questions please.

    1) what is the difference between blue and no color dot as shown below?

    2) What is Retained column standing for? for some it is 0.

    3) for example screenshot above I have System.Byte using highest memory consumption. when i double click on it. i see bunch of memorystrems. How will I know what are those? I am assuming those are images but is there a way to understand it

    4) according to screenshot below. my real memory consumption is 116mb? or 276mb what is the difference between memory consumption and working sets?

  • RodrigoMoyaRodrigoMoya ESXamarin Team Xamurai
    Accepted Answer

    @batmaci said:
    @RodrigoMoya quick questions please.

    1) what is the difference between blue and no color dot as shown below?

    blue means "user code", the other is "system libraries". As mentioned before it is not super accurate.

    2) What is Retained column standing for? for some it is 0.

    this is the size of the objects referenced by the selected allocation and all the references from those objects. That is, it means "amount of memory retained by this object". It's very useful to see if an object is the responsible for keeping a lot of objects in memory. Combined with the path to roots feature, it allows you to find possible leaks.

    3) for example screenshot above I have System.Byte using highest memory consumption. when i double click on it. i see bunch of memorystrems. How will I know what are those? I am assuming those are images but is there a way to understand it

    it's hard to know where they come from by just looking at the list, you should have a look at the right side inspector area, which has several tabs, one of them being a stack trace view, which shows where that object was allocated. And also, the path to roots view allows you to see what is keeping that object alive. So, looking at those and knowing your code, you should be able to see where that object was allocated, by whom, what's keeping a reference to it, etc.

    4) according to screenshot below. my real memory consumption is 116mb? or 276mb what is the difference between memory consumption and working sets?

    Memory allocated is the managed memory your application has allocated (or the total memory allocated by the objects being displayed on the left side list). The other stats (the ones on the right) are about your process. A short explanation of it is here -> https://technet.microsoft.com/en-us/library/cc958292.aspx

    Look at memory characteristics of processes using the Process\Working Set and Process\Private Bytes counters. The Working Set counter reports the amount of committed memory allocated to the process. This might include shared and private bytes currently residing in physical memory. The Private Bytes counter reports memory allocated exclusively to the process. Working set monitoring is important because, when memory is in short supply, the operating system trims the working sets of processes and paging occurs. (The working set of a process is the amount of physical memory assigned to that process by the operating system.)

Sign In or Register to comment.