HeapSnapshot GetCombinedMap(HeapSnapshot m1, HeapSnapshot m2) { if (m2.Timestamp < m1.Timestamp) { HeapSnapshot tmp = m1; m1 = m2; m2 = tmp; } foreach (HeapSnapshot[] dif in difs) { if (dif[0] == m1 && dif[1] == m2) { return(dif[2]); } } HeapSnapshot res = HeapSnapshot.GetDiff(m1, m2); difs.Add(new HeapSnapshot[] { m1, m2, res }); return(res); }