public Dictionary <string, NMDesc> CaptureMemory() { lock (this) { var result = new Dictionary <string, NMDesc>(); foreach (var i in Mems) { var desc = new NMDesc(); desc.Count = i.Value.Count; desc.Size = i.Value.Size; result.Add(i.Key, desc); } return(result); } }
public virtual void OnMemAlloc(IntPtr size, string file, IntPtr line, IntPtr id) { lock (this) { AllocCount++; TotalCount++; NMDesc desc; if (false == Mems.TryGetValue($"{file}:{line}", out desc)) { desc = new NMDesc(); desc.Count = 1; desc.Size = (Int64)size; Mems.Add($"{file}:{line}", desc); return; } desc.Size += (Int64)size; desc.Count++; } }
public Dictionary <string, NMDesc> GetDelta(Dictionary <string, NMDesc> lh, Dictionary <string, NMDesc> rh) { var result = new Dictionary <string, NMDesc>(); foreach (var i in rh) { var desc = new NMDesc(); NMDesc lhDesc; if (lh.TryGetValue(i.Key, out lhDesc) == false) { desc.Count = i.Value.Count; desc.Size = i.Value.Size; } else { desc.Count = i.Value.Count - lhDesc.Count; desc.Size = i.Value.Size - lhDesc.Size; } result.Add(i.Key, desc); } return(result); }