< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp

Print this page
rev 59188 : 8244243: Shenandoah: Cleanup Shenandoah phase timing tracking and JFR event supporting

*** 52,106 **** public: ShenandoahGCSession(GCCause::Cause cause); ~ShenandoahGCSession(); }; ! class ShenandoahPausePhase : public StackObj { private: ! GCTraceTimeWrapper<LogLevel::Info, LOG_TAGS(gc)> _tracer; ! ConcurrentGCTimer* const _timer; public: ! ShenandoahPausePhase(const char* title, bool log_heap_usage = false); ! ~ShenandoahPausePhase(); }; ! class ShenandoahConcurrentPhase : public StackObj { private: GCTraceTimeWrapper<LogLevel::Info, LOG_TAGS(gc)> _tracer; ConcurrentGCTimer* const _timer; public: ! ShenandoahConcurrentPhase(const char* title, bool log_heap_usage = false); ! ~ShenandoahConcurrentPhase(); }; ! class ShenandoahGCPhase : public StackObj { private: ! static ShenandoahPhaseTimings::Phase _current_phase; ! ! ShenandoahPhaseTimings* const _timings; ! const ShenandoahPhaseTimings::Phase _phase; ! ShenandoahPhaseTimings::Phase _parent_phase; ! double _start; public: ! ShenandoahGCPhase(ShenandoahPhaseTimings::Phase phase); ! ~ShenandoahGCPhase(); ! ! static ShenandoahPhaseTimings::Phase current_phase() { return _current_phase; } ! ! static bool is_current_phase_valid(); }; ! class ShenandoahGCSubPhase: public ShenandoahGCPhase { private: ConcurrentGCTimer* const _timer; public: ! ShenandoahGCSubPhase(ShenandoahPhaseTimings::Phase phase); ! ~ShenandoahGCSubPhase(); }; class ShenandoahGCWorkerPhase : public StackObj { private: ShenandoahPhaseTimings* const _timings; --- 52,122 ---- public: ShenandoahGCSession(GCCause::Cause cause); ~ShenandoahGCSession(); }; ! /* ! * ShenandoahGCPhaseTiming tracks Shenandoah specific timing information ! * of a GC phase ! */ ! class ShenandoahTimingsTracker : public StackObj { private: ! static ShenandoahPhaseTimings::Phase _current_phase; ! ! ShenandoahPhaseTimings* const _timings; ! const ShenandoahPhaseTimings::Phase _phase; ! ShenandoahPhaseTimings::Phase _parent_phase; ! double _start; public: ! ShenandoahTimingsTracker(ShenandoahPhaseTimings::Phase phase); ! ~ShenandoahTimingsTracker(); ! ! static ShenandoahPhaseTimings::Phase current_phase() { return _current_phase; } ! ! static bool is_current_phase_valid(); }; ! /* ! * ShenandoahPausePhase tracks a STW pause and emits Shenandoah timing and ! * a corresponding JFR event ! */ ! class ShenandoahPausePhase : public ShenandoahTimingsTracker { private: GCTraceTimeWrapper<LogLevel::Info, LOG_TAGS(gc)> _tracer; ConcurrentGCTimer* const _timer; public: ! ShenandoahPausePhase(const char* title, ShenandoahPhaseTimings::Phase phase, bool log_heap_usage = false); ! ~ShenandoahPausePhase(); }; ! /* ! * ShenandoahConcurrentPhase tracks a concurrent GC phase and emits Shenandoah timing and ! * a corresponding JFR event ! */ ! class ShenandoahConcurrentPhase : public ShenandoahTimingsTracker { private: ! GCTraceTimeWrapper<LogLevel::Info, LOG_TAGS(gc)> _tracer; ! ConcurrentGCTimer* const _timer; public: ! ShenandoahConcurrentPhase(const char* title, ShenandoahPhaseTimings::Phase phase, bool log_heap_usage = false); ! ~ShenandoahConcurrentPhase(); }; ! /* ! * ShenandoahGCPhase tracks Shenandoah specific timing information ! * and emits a corresponding JFR event of a GC phase ! */ ! class ShenandoahGCPhase : public ShenandoahTimingsTracker { private: ConcurrentGCTimer* const _timer; public: ! ShenandoahGCPhase(ShenandoahPhaseTimings::Phase phase); ! ~ShenandoahGCPhase(); }; class ShenandoahGCWorkerPhase : public StackObj { private: ShenandoahPhaseTimings* const _timings;
< prev index next >