예제 #1
0
        public Heapshot(NativeHeapshot nativeHeapshot)
        {
            //Objects = nativeHeapshot.Objects;
            Roots        = nativeHeapshot.Roots;
            TrackedTypes = nativeHeapshot.TrackedTypes;
            Types        = nativeHeapshot.Types;

            var graphWithInReferences = new BidirectionAdapterGraph <HeapObject, Edge <HeapObject> > (nativeHeapshot.Graph);

            // Construct the in-edge graph, so we can trace an object's retention path.
            Graph = new ReversedBidirectionalGraph <HeapObject, Edge <HeapObject> > (graphWithInReferences);
        }
예제 #2
0
        internal Heap(
            Dictionary <long, HeapRoot> roots,
            Dictionary <string, long> trackedTypes,
            Dictionary <long, HeapTypeInformation> types,
            IVertexAndEdgeListGraph <HeapObject, Edge <HeapObject> > referenceGraph)
        {
            //Objects = nativeHeapshot.Objects;
            Roots        = roots;
            TrackedTypes = trackedTypes;
            Types        = types;

            var graphWithInReferences = new BidirectionAdapterGraph <HeapObject, Edge <HeapObject> >(referenceGraph);

            // Construct the in-edge graph, so we can trace an object's retention path.
            Graph = new ReversedBidirectionalGraph <HeapObject, Edge <HeapObject> >(graphWithInReferences);
        }