36 friend class VMStructs;
37
38 private:
39 PerfVariable* _capacity;
40 PerfVariable* _used;
41 PerfVariable* _max_capacity;
42
43 // Constant PerfData types don't need to retain a reference.
44 // However, it's a good idea to document them here.
45 // PerfConstant* _size;
46
47 ContiguousSpace* _space;
48 char* _name_space;
49
50 public:
51
52 CSpaceCounters(const char* name, int ordinal, size_t max_size,
53 ContiguousSpace* s, GenerationCounters* gc);
54
55 ~CSpaceCounters() {
56 if (_name_space != NULL) FREE_C_HEAP_ARRAY(char, _name_space, mtInternal);
57 }
58
59 virtual inline void update_capacity() {
60 _capacity->set_value(_space->capacity());
61 }
62
63 virtual inline void update_used() {
64 _used->set_value(_space->used());
65 }
66
67 virtual inline void update_all() {
68 update_used();
69 update_capacity();
70 }
71
72 const char* name_space() const { return _name_space; }
73 };
74
75 class ContiguousSpaceUsedHelper : public PerfLongSampleHelper {
76 private:
|
36 friend class VMStructs;
37
38 private:
39 PerfVariable* _capacity;
40 PerfVariable* _used;
41 PerfVariable* _max_capacity;
42
43 // Constant PerfData types don't need to retain a reference.
44 // However, it's a good idea to document them here.
45 // PerfConstant* _size;
46
47 ContiguousSpace* _space;
48 char* _name_space;
49
50 public:
51
52 CSpaceCounters(const char* name, int ordinal, size_t max_size,
53 ContiguousSpace* s, GenerationCounters* gc);
54
55 ~CSpaceCounters() {
56 if (_name_space != NULL) FREE_C_HEAP_ARRAY(char, _name_space);
57 }
58
59 virtual inline void update_capacity() {
60 _capacity->set_value(_space->capacity());
61 }
62
63 virtual inline void update_used() {
64 _used->set_value(_space->used());
65 }
66
67 virtual inline void update_all() {
68 update_used();
69 update_capacity();
70 }
71
72 const char* name_space() const { return _name_space; }
73 };
74
75 class ContiguousSpaceUsedHelper : public PerfLongSampleHelper {
76 private:
|