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) {}