< prev index next >
src/share/vm/gc/shared/gcTraceTime.hpp
Print this page
*** 24,33 ****
--- 24,35 ----
#ifndef SHARE_VM_GC_SHARED_GCTRACETIME_HPP
#define SHARE_VM_GC_SHARED_GCTRACETIME_HPP
#include "logging/log.hpp"
+ #include "logging/logHandle.hpp"
+ #include "logging/logStream.hpp"
#include "memory/allocation.hpp"
#include "utilities/ticks.hpp"
class GCTraceCPUTime : public StackObj {
bool _active; // true if times will be measured and printed
*** 39,52 ****
~GCTraceCPUTime();
};
class GCTimer;
- template <LogLevelType Level, LogTagType T0, LogTagType T1 = LogTag::__NO_TAG, LogTagType T2 = LogTag::__NO_TAG, LogTagType T3 = LogTag::__NO_TAG,
- LogTagType T4 = LogTag::__NO_TAG, LogTagType GuardTag = LogTag::__NO_TAG>
class GCTraceTimeImpl : public StackObj {
private:
bool _enabled;
Ticks _start_ticks;
const char* _title;
GCCause::Cause _gc_cause;
GCTimer* _timer;
--- 41,54 ----
~GCTraceCPUTime();
};
class GCTimer;
class GCTraceTimeImpl : public StackObj {
private:
+ LogTargetHandle _out_start;
+ LogTargetHandle _out_stop;
bool _enabled;
Ticks _start_ticks;
const char* _title;
GCCause::Cause _gc_cause;
GCTimer* _timer;
*** 55,68 ****
void log_start(jlong start_counter);
void log_stop(jlong start_counter, jlong stop_counter);
void time_stamp(Ticks& ticks);
public:
! GCTraceTimeImpl(const char* title, GCTimer* timer = NULL, GCCause::Cause gc_cause = GCCause::_no_gc, bool log_heap_usage = false);
~GCTraceTimeImpl();
};
// Similar to GCTraceTimeImpl but is intended for concurrent phase logging,
// which is a bit simpler and should always print the start line, i.e. not add the "start" tag.
template <LogLevelType Level, LogTagType T0, LogTagType T1 = LogTag::__NO_TAG, LogTagType T2 = LogTag::__NO_TAG, LogTagType T3 = LogTag::__NO_TAG,
LogTagType T4 = LogTag::__NO_TAG, LogTagType GuardTag = LogTag::__NO_TAG>
class GCTraceConcTimeImpl : public StackObj {
--- 57,78 ----
void log_start(jlong start_counter);
void log_stop(jlong start_counter, jlong stop_counter);
void time_stamp(Ticks& ticks);
public:
! GCTraceTimeImpl(LogTargetHandle out_start, LogTargetHandle out_end, const char* title, GCTimer* timer = NULL, GCCause::Cause gc_cause = GCCause::_no_gc, bool log_heap_usage = false);
~GCTraceTimeImpl();
};
+ template <LogLevelType Level, LogTagType T0, LogTagType T1, LogTagType T2, LogTagType T3, LogTagType T4, LogTagType GuardTag>
+ class GCTraceTimeImplWrapper : public StackObj {
+ GCTraceTimeImpl _impl;
+ public:
+ GCTraceTimeImplWrapper(const char* title, GCTimer* timer = NULL, GCCause::Cause gc_cause = GCCause::_no_gc, bool log_heap_usage = false);
+ ~GCTraceTimeImplWrapper();
+ };
+
// Similar to GCTraceTimeImpl but is intended for concurrent phase logging,
// which is a bit simpler and should always print the start line, i.e. not add the "start" tag.
template <LogLevelType Level, LogTagType T0, LogTagType T1 = LogTag::__NO_TAG, LogTagType T2 = LogTag::__NO_TAG, LogTagType T3 = LogTag::__NO_TAG,
LogTagType T4 = LogTag::__NO_TAG, LogTagType GuardTag = LogTag::__NO_TAG>
class GCTraceConcTimeImpl : public StackObj {
< prev index next >