I'm new to dotTrace and am wondering if I am reading this snapshot correctly. I was wondering if someone would be kind enough to review it and see if my understanding of the snapshot is correct. I've attached a couple of small bitmaps which are screen grabs of the allocation call stacks.
With the attached pictures of the snapshots, I started the trace as a "Memory profile". I had "record allocation callstacks", "start recording immediately", "Allow recording garbage collection" and "allow recording finalized object information" all enabled.
I took 4 snapshots over the course of the lifetime of the run. I have attached pictures of the call stack for the 3rd & 4th snapshots.
My reading of this is that there is 1 function in particular which does not seem to be releasing memory, it would appear to be the ParseFromString method which is consuming the memory and not releasing it, 71.41% (in the 4th snapshot) of memory would appear to be allocated to that method.
When I look at the held memory and held objects these are always increasing so in my understanding this would appear to be a memory leak.
Is my reading correct, or is this just showing where the memory was allocated? and not what is actually holding the memory.