src/share/vm/gc_implementation/shared/gcTrace.hpp
Print this page
*** 40,49 ****
--- 40,50 ----
class GCHeapSummary;
class PermGenSummary;
class PSHeapSummary;
class ReferenceProcessorStats;
class TimePartitions;
+ class BoolObjectClosure;
class SharedGCInfo VALUE_OBJ_CLASS_SPEC {
static const jlong UNSET_TIMESTAMP = -1;
public:
*** 107,124 ****
--- 108,127 ----
};
#endif // SERIALGC
class GCTracer : public ResourceObj {
+ friend class ObjectCountEventSenderClosure;
protected:
SharedGCInfo _shared_gc_info;
public:
void report_gc_start(GCCause::Cause cause, jlong timestamp);
void report_gc_end(jlong timestamp, TimePartitions* time_partitions);
void report_gc_heap_summary(GCWhen::Type when, const GCHeapSummary& heap_summary, const PermGenSummary& perm_gen_summary) const;
void report_gc_reference_stats(const ReferenceProcessorStats& rp) const;
+ void report_object_count_after_gc(BoolObjectClosure* object_filter);
bool has_reported_gc_start() const;
protected:
GCTracer(GCName name) : _shared_gc_info(name) {}
*** 129,138 ****
--- 132,143 ----
void send_garbage_collection_event() const;
void send_gc_heap_summary_event(GCWhen::Type when, const GCHeapSummary& heap_summary) const;
void send_perm_gen_summary_event(GCWhen::Type when, const PermGenSummary& perm_gen_summary) const;
void send_reference_stats_event(ReferenceType type, size_t count) const;
void send_phase_events(TimePartitions* time_partitions) const;
+ void send_object_count_after_gc_event(klassOop klass, jlong count, julong total_size) const;
+ bool should_send_object_count_after_gc_event() const;
};
class YoungGCTracer : public GCTracer {
protected:
YoungGCTracer(GCName name) : GCTracer(name) {}