41
42 struct DetailedUsage : public StackObj {
43 size_t _eden_used;
44 size_t _survivor_used;
45 size_t _old_used;
46 size_t _humongous_used;
47
48 size_t _eden_region_count;
49 size_t _survivor_region_count;
50 size_t _old_region_count;
51 size_t _humongous_region_count;
52
53 DetailedUsage() :
54 _eden_used(0), _survivor_used(0), _old_used(0), _humongous_used(0),
55 _eden_region_count(0), _survivor_region_count(0), _old_region_count(0), _humongous_region_count(0) {}
56 };
57
58 class DetailedUsageClosure: public HeapRegionClosure {
59 public:
60 DetailedUsage _usage;
61 bool doHeapRegion(HeapRegion* r) {
62 if (r->is_old()) {
63 _usage._old_used += r->used();
64 _usage._old_region_count++;
65 } else if (r->is_survivor()) {
66 _usage._survivor_used += r->used();
67 _usage._survivor_region_count++;
68 } else if (r->is_eden()) {
69 _usage._eden_used += r->used();
70 _usage._eden_region_count++;
71 } else if (r->is_humongous()) {
72 _usage._humongous_used += r->used();
73 _usage._humongous_region_count++;
74 } else {
75 assert(r->used() == 0, "Expected used to be 0 but it was " SIZE_FORMAT, r->used());
76 }
77 return false;
78 }
79 };
80
81 void G1HeapTransition::print() {
|
41
42 struct DetailedUsage : public StackObj {
43 size_t _eden_used;
44 size_t _survivor_used;
45 size_t _old_used;
46 size_t _humongous_used;
47
48 size_t _eden_region_count;
49 size_t _survivor_region_count;
50 size_t _old_region_count;
51 size_t _humongous_region_count;
52
53 DetailedUsage() :
54 _eden_used(0), _survivor_used(0), _old_used(0), _humongous_used(0),
55 _eden_region_count(0), _survivor_region_count(0), _old_region_count(0), _humongous_region_count(0) {}
56 };
57
58 class DetailedUsageClosure: public HeapRegionClosure {
59 public:
60 DetailedUsage _usage;
61 bool do_heap_region(HeapRegion* r) {
62 if (r->is_old()) {
63 _usage._old_used += r->used();
64 _usage._old_region_count++;
65 } else if (r->is_survivor()) {
66 _usage._survivor_used += r->used();
67 _usage._survivor_region_count++;
68 } else if (r->is_eden()) {
69 _usage._eden_used += r->used();
70 _usage._eden_region_count++;
71 } else if (r->is_humongous()) {
72 _usage._humongous_used += r->used();
73 _usage._humongous_region_count++;
74 } else {
75 assert(r->used() == 0, "Expected used to be 0 but it was " SIZE_FORMAT, r->used());
76 }
77 return false;
78 }
79 };
80
81 void G1HeapTransition::print() {
|