comparison agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1CollectedHeap.java @ 20336:6701abbc4441

8054818: Refactor HeapRegionSeq to manage heap region and auxiliary data Summary: Let HeapRegionSeq manage the heap region and auxiliary data to decrease the amount of responsibilities of G1CollectedHeap, and encapsulate this work from other code. Reviewed-by: jwilhelm, jmasa, mgerdin, brutisso
author tschatzl
date Tue, 19 Aug 2014 10:50:27 +0200
parents 58fc1b1523dc
children a8ea2f110d87
comparison
equal deleted inserted replaced
20335:eec72fa4b108 20336:6701abbc4441
43 // Mirror class for G1CollectedHeap. 43 // Mirror class for G1CollectedHeap.
44 44
45 public class G1CollectedHeap extends SharedHeap { 45 public class G1CollectedHeap extends SharedHeap {
46 // HeapRegionSeq _seq; 46 // HeapRegionSeq _seq;
47 static private long hrsFieldOffset; 47 static private long hrsFieldOffset;
48 // MemRegion _g1_committed; 48 // MemRegion _g1_reserved;
49 static private long g1CommittedFieldOffset; 49 static private long g1ReservedFieldOffset;
50 // size_t _summary_bytes_used; 50 // size_t _summary_bytes_used;
51 static private CIntegerField summaryBytesUsedField; 51 static private CIntegerField summaryBytesUsedField;
52 // G1MonitoringSupport* _g1mm; 52 // G1MonitoringSupport* _g1mm;
53 static private AddressField g1mmField; 53 static private AddressField g1mmField;
54 // HeapRegionSet _old_set; 54 // HeapRegionSet _old_set;
66 66
67 static private synchronized void initialize(TypeDataBase db) { 67 static private synchronized void initialize(TypeDataBase db) {
68 Type type = db.lookupType("G1CollectedHeap"); 68 Type type = db.lookupType("G1CollectedHeap");
69 69
70 hrsFieldOffset = type.getField("_hrs").getOffset(); 70 hrsFieldOffset = type.getField("_hrs").getOffset();
71 g1CommittedFieldOffset = type.getField("_g1_committed").getOffset();
72 summaryBytesUsedField = type.getCIntegerField("_summary_bytes_used"); 71 summaryBytesUsedField = type.getCIntegerField("_summary_bytes_used");
73 g1mmField = type.getAddressField("_g1mm"); 72 g1mmField = type.getAddressField("_g1mm");
74 oldSetFieldOffset = type.getField("_old_set").getOffset(); 73 oldSetFieldOffset = type.getField("_old_set").getOffset();
75 humongousSetFieldOffset = type.getField("_humongous_set").getOffset(); 74 humongousSetFieldOffset = type.getField("_humongous_set").getOffset();
76 } 75 }
77 76
78 public long capacity() { 77 public long capacity() {
79 Address g1CommittedAddr = addr.addOffsetTo(g1CommittedFieldOffset); 78 return hrs().capacity();
80 MemRegion g1Committed = new MemRegion(g1CommittedAddr);
81 return g1Committed.byteSize();
82 } 79 }
83 80
84 public long used() { 81 public long used() {
85 return summaryBytesUsedField.getValue(addr); 82 return summaryBytesUsedField.getValue(addr);
86 } 83 }