< prev index next >

src/share/vm/gc_implementation/shared/objectCountEventSender.cpp

Print this page

        

*** 24,59 **** #include "precompiled.hpp" #include "gc_implementation/shared/gcId.hpp" #include "gc_implementation/shared/objectCountEventSender.hpp" #include "memory/heapInspection.hpp" - #include "trace/tracing.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/macros.hpp" #include "utilities/ticks.hpp" - #if INCLUDE_SERVICES ! void ObjectCountEventSender::send(const KlassInfoEntry* entry, GCId gc_id, const Ticks& timestamp) { ! #if INCLUDE_TRACE ! assert(Tracing::is_event_enabled(EventObjectCountAfterGC::eventId), ! "Only call this method if the event is enabled"); ! ! EventObjectCountAfterGC event(UNTIMED); ! event.set_gcId(gc_id.id()); ! event.set_class(entry->klass()); ! event.set_count(entry->count()); ! event.set_totalSize(entry->words() * BytesPerWord); ! event.set_endtime(timestamp); ! event.commit(); ! #endif // INCLUDE_TRACE ! } bool ObjectCountEventSender::should_send_event() { ! #if INCLUDE_TRACE ! return Tracing::is_event_enabled(EventObjectCountAfterGC::eventId); #else return false; ! #endif // INCLUDE_TRACE } #endif // INCLUDE_SERVICES --- 24,78 ---- #include "precompiled.hpp" #include "gc_implementation/shared/gcId.hpp" #include "gc_implementation/shared/objectCountEventSender.hpp" + #include "jfr/jfrEvents.hpp" #include "memory/heapInspection.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/macros.hpp" #include "utilities/ticks.hpp" ! ! #if INCLUDE_SERVICES bool ObjectCountEventSender::should_send_event() { ! #if INCLUDE_JFR ! return _should_send_requestable_event || EventObjectCountAfterGC::is_enabled(); #else return false; ! #endif // INCLUDE_JFR ! } ! ! bool ObjectCountEventSender::_should_send_requestable_event = false; ! ! void ObjectCountEventSender::enable_requestable_event() { ! _should_send_requestable_event = true; ! } ! ! void ObjectCountEventSender::disable_requestable_event() { ! _should_send_requestable_event = false; ! } ! ! template <typename T> ! void ObjectCountEventSender::send_event_if_enabled(Klass* klass, GCId gc_id, jlong count, julong size, const Ticks& timestamp) { ! T event(UNTIMED); ! if (event.should_commit()) { ! event.set_gcId(gc_id.id()); ! event.set_objectClass(klass); ! event.set_count(count); ! event.set_totalSize(size); ! event.set_endtime(timestamp); ! event.commit(); ! } ! } ! ! void ObjectCountEventSender::send(const KlassInfoEntry* entry, GCId gc_id, const Ticks& timestamp) { ! Klass* klass = entry->klass(); ! jlong count = entry->count(); ! julong total_size = entry->words() * BytesPerWord; ! ! send_event_if_enabled<EventObjectCount>(klass, gc_id, count, total_size, timestamp); ! send_event_if_enabled<EventObjectCountAfterGC>(klass, gc_id, count, total_size, timestamp); } #endif // INCLUDE_SERVICES
< prev index next >