22 *
23 */
24
25 #ifndef SHARE_GC_G1_G1EDENREGIONS_HPP
26 #define SHARE_GC_G1_G1EDENREGIONS_HPP
27
28 #include "gc/g1/heapRegion.hpp"
29 #include "runtime/globals.hpp"
30 #include "utilities/debug.hpp"
31
32 class G1EdenRegions {
33 private:
34 int _length;
35 // Sum of used bytes from all retired eden regions.
36 // I.e. updated when mutator regions are retired.
37 volatile size_t _used_bytes;
38
39 public:
40 G1EdenRegions() : _length(0), _used_bytes(0) { }
41
42 void add(HeapRegion* hr) {
43 assert(!hr->is_eden(), "should not already be set");
44 _length++;
45 }
46
47 void clear() { _length = 0; _used_bytes = 0; }
48
49 uint length() const { return _length; }
50
51 size_t used_bytes() const { return _used_bytes; }
52
53 void add_used_bytes(size_t used_bytes) {
54 _used_bytes += used_bytes;
55 }
56 };
57
58 #endif // SHARE_GC_G1_G1EDENREGIONS_HPP
|
22 *
23 */
24
25 #ifndef SHARE_GC_G1_G1EDENREGIONS_HPP
26 #define SHARE_GC_G1_G1EDENREGIONS_HPP
27
28 #include "gc/g1/heapRegion.hpp"
29 #include "runtime/globals.hpp"
30 #include "utilities/debug.hpp"
31
32 class G1EdenRegions {
33 private:
34 int _length;
35 // Sum of used bytes from all retired eden regions.
36 // I.e. updated when mutator regions are retired.
37 volatile size_t _used_bytes;
38
39 public:
40 G1EdenRegions() : _length(0), _used_bytes(0) { }
41
42 // Called when a heap region is added to eden region.
43 void add(HeapRegion* hr) {
44 assert(!hr->is_eden(), "should not already be set");
45 _length++;
46 }
47
48 void clear() {
49 _length = 0;
50 _used_bytes = 0;
51 }
52
53 // Returns actual number of heap regions tagged as eden.
54 // I.e. retained heap region is also included.
55 uint length() const { return _length; }
56
57 // Sum of used bytes of all eden regions except used bytes of a retained region.
58 size_t used_bytes() const { return _used_bytes; }
59
60 // Called when the mutator region retires.
61 // Exclude used bytes of a retained region.
62 void add_used_bytes(HeapRegion* alloc_region, size_t used_bytes) {
63 _used_bytes += used_bytes;
64 }
65 };
66
67 #endif // SHARE_GC_G1_G1EDENREGIONS_HPP
|