protected void UpdateSegmentData(HeapSegment segment) { _totalHeapSize += segment.Length; _sizeByGen[0] += segment.Gen0Length; _sizeByGen[1] += segment.Gen1Length; if (!segment.IsLarge) { _sizeByGen[2] += segment.Gen2Length; } else { _sizeByGen[3] += segment.Gen2Length; } }
protected void InitSegments(RuntimeBase runtime) { // Populate segments SubHeap[] heaps; if (runtime.GetHeaps(out heaps)) { var segments = new List <HeapSegment>(); foreach (var heap in heaps) { if (heap != null) { ISegmentData seg = runtime.GetSegmentData(heap.FirstLargeSegment); while (seg != null) { var segment = new HeapSegment(runtime, seg, heap, true, this); segments.Add(segment); UpdateSegmentData(segment); seg = runtime.GetSegmentData(seg.Next); } seg = runtime.GetSegmentData(heap.FirstSegment); while (seg != null) { var segment = new HeapSegment(runtime, seg, heap, false, this); segments.Add(segment); UpdateSegmentData(segment); seg = runtime.GetSegmentData(seg.Next); } } } UpdateSegments(segments.ToArray()); } else { _segments = new ClrSegment[0]; } }
protected void UpdateSegmentData(HeapSegment segment) { _totalHeapSize += segment.Length; _sizeByGen[0] += segment.Gen0Length; _sizeByGen[1] += segment.Gen1Length; if (!segment.IsLarge) _sizeByGen[2] += segment.Gen2Length; else _sizeByGen[3] += segment.Gen2Length; }
protected void InitSegments(RuntimeBase runtime) { // Populate segments SubHeap[] heaps; if (runtime.GetHeaps(out heaps)) { var segments = new List<HeapSegment>(); foreach (var heap in heaps) { if (heap != null) { ISegmentData seg = runtime.GetSegmentData(heap.FirstLargeSegment); while (seg != null) { var segment = new HeapSegment(runtime, seg, heap, true, this); segments.Add(segment); UpdateSegmentData(segment); seg = runtime.GetSegmentData(seg.Next); } seg = runtime.GetSegmentData(heap.FirstSegment); while (seg != null) { var segment = new HeapSegment(runtime, seg, heap, false, this); segments.Add(segment); UpdateSegmentData(segment); seg = runtime.GetSegmentData(seg.Next); } } } UpdateSegments(segments.ToArray()); } else { _segments = new ClrSegment[0]; } }