public ClrHeapDecorator(ClrRuntime clrRuntime, ThreadDispatcher threadDispatcher) { _threadDispatcher = threadDispatcher; _clrHeap = threadDispatcher.Process(() => clrRuntime.GetHeap()); _threadDispatcher.Process(()=> { objectIndex = IndexBuilder.Build(_clrHeap); GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; }); }
public static MultiElementDictionary2<ulong> Build(ClrHeap heap) { var result = new MultiElementDictionary2<ulong>(); foreach (var objRef in heap.EnumerateObjects()) { var type = heap.GetObjectType(objRef); result.Add(type.Name, objRef); } return result; }