Hi,
I'm looking at memory profiles and have a hard time interpreting what I see. I'm trying to better understand what I am looking at in `go tools pprof` why looking at the raw data. All 'groups' at the end of output from /debug/pprof/heap have lines that begin with "0: 0 [0: 0] @0x.......". It's these zeros I cannot wrap my head around.
As I read the source code for pprof, I interpret the zeros as; there are zero inuse object and there has never been any allocations for the following call stack. This seem like a really strange interpretation, why save a call stack from which there has never been made any allocations? How am I supposed to interpret it?
That line format follows the format of "n: m [N: M] @0x...." where, as I interpret the source code, we have
n = number of objects that are in use and allocated using the call stack just below
m = how many bytes these n objects occupy
N = number of object ever allocated using the call stack just below
M = how many bytes these m objects occupy
n and m has to do with what is called the inuse_object and inuse_space respectively.
N and M has to do with what is called the alloc_object and alloc_space respectively.
It might just be my interpretation of inuse and alloc. I see inuse as something that still has a reference to it while alloc show the total count of objects allocated at a certain call stack. Given this interpretation, I cannot see how zeros make sense.
Please help me understand.
// Patrik