Mercurial > hg > truffle
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 } |