115 const char* title() const { return _title; }
116 static int sort_helper(KlassInfoEntry** e1, KlassInfoEntry** e2);
117 void print_elements(outputStream* st) const;
118 public:
119 enum {
120 histo_initial_size = 1000
121 };
122 KlassInfoHisto(const char* title,
123 int estimatedCount);
124 ~KlassInfoHisto();
125 void add(KlassInfoEntry* cie);
126 void print_on(outputStream* st) const;
127 void sort();
128 };
129
130
131 class HeapInspection : public AllStatic {
132 public:
133 static void heap_inspection(outputStream* st, bool need_prologue);
134 static void find_instances_at_safepoint(klassOop k, GrowableArray<oop>* result);
135 };
136
137 #endif // SHARE_VM_MEMORY_HEAPINSPECTION_HPP
|
115 const char* title() const { return _title; }
116 static int sort_helper(KlassInfoEntry** e1, KlassInfoEntry** e2);
117 void print_elements(outputStream* st) const;
118 public:
119 enum {
120 histo_initial_size = 1000
121 };
122 KlassInfoHisto(const char* title,
123 int estimatedCount);
124 ~KlassInfoHisto();
125 void add(KlassInfoEntry* cie);
126 void print_on(outputStream* st) const;
127 void sort();
128 };
129
130
131 class HeapInspection : public AllStatic {
132 public:
133 static void heap_inspection(outputStream* st, bool need_prologue);
134 static void find_instances_at_safepoint(klassOop k, GrowableArray<oop>* result);
135 static void instance_inspection(KlassInfoClosure* closure);
136 static void instance_inspection(BoolObjectClosure* object_filter,
137 KlassInfoClosure* closure);
138 static HeapWord* create_random_seed();
139
140 private:
141 static bool is_shared_heap();
142 static size_t iterate_over_heap(KlassInfoTable* cit);
143 static size_t iterate_over_heap(BoolObjectClosure* object_filter, KlassInfoTable* cit);
144 };
145
146 #endif // SHARE_VM_MEMORY_HEAPINSPECTION_HPP
|