src/share/vm/gc_implementation/shared/gcTrace.hpp
Print this page
rev 4873 : 8015972: Refactor the sending of the object count after GC event
@@ -28,11 +28,10 @@
#include "gc_interface/gcCause.hpp"
#include "gc_interface/gcName.hpp"
#include "gc_implementation/shared/gcWhen.hpp"
#include "gc_implementation/shared/copyFailedInfo.hpp"
#include "memory/allocation.hpp"
-#include "memory/klassInfoClosure.hpp"
#include "memory/referenceType.hpp"
#if INCLUDE_ALL_GCS
#include "gc_implementation/g1/g1YCTypes.hpp"
#endif
#include "utilities/macros.hpp"
@@ -111,21 +110,19 @@
};
#endif // INCLUDE_ALL_GCS
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 MetaspaceSummary& meta_space_summary) const;
void report_gc_reference_stats(const ReferenceProcessorStats& rp) const;
void report_object_count_after_gc(BoolObjectClosure* object_filter) NOT_SERVICES_RETURN;
-
bool has_reported_gc_start() const;
protected:
GCTracer(GCName name) : _shared_gc_info(name) {}
virtual void report_gc_start_impl(GCCause::Cause cause, jlong timestamp);
@@ -135,29 +132,10 @@
void send_garbage_collection_event() const;
void send_gc_heap_summary_event(GCWhen::Type when, const GCHeapSummary& heap_summary) const;
void send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_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(Klass* klass, jlong count, julong total_size) const NOT_SERVICES_RETURN;
- bool should_send_object_count_after_gc_event() const;
-};
-
-class ObjectCountEventSenderClosure : public KlassInfoClosure {
- GCTracer* _gc_tracer;
- const double _size_threshold_percentage;
- const size_t _total_size_in_words;
- public:
- ObjectCountEventSenderClosure(GCTracer* gc_tracer, size_t total_size_in_words) :
- _gc_tracer(gc_tracer),
- _size_threshold_percentage(ObjectCountCutOffPercent / 100),
- _total_size_in_words(total_size_in_words)
- {}
- virtual void do_cinfo(KlassInfoEntry* entry);
- protected:
- virtual void send_event(KlassInfoEntry* entry);
- private:
- bool should_send_event(KlassInfoEntry* entry) const;
};
class YoungGCTracer : public GCTracer {
static const uint UNSET_TENURING_THRESHOLD = (uint) -1;