コード例 #1
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;
     }
 }
コード例 #2
0
ファイル: ClrHeap.cs プロジェクト: JamesLinus/clrmd
        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];
            }
        }
コード例 #3
0
ファイル: heapbase.cs プロジェクト: tomasr/clrmd
 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;
 }
コード例 #4
0
ファイル: heapbase.cs プロジェクト: tomasr/clrmd
        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];
            }
        }