< prev index next >
src/share/vm/runtime/timer.cpp
Print this page
rev 7854 : imported patch 8027962-per-phase-timing-measurements-for-strong-roots-processing
*** 24,33 ****
--- 24,36 ----
#include "precompiled.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/timer.hpp"
#include "utilities/ostream.hpp"
+ #ifdef INCLUDE_ALL_GCS
+ #include "gc_implementation/g1/g1GCPhaseTimes.hpp"
+ #endif
double TimeHelper::counter_to_seconds(jlong counter) {
double count = (double) counter;
double freq = (double) os::elapsed_frequency();
return counter/freq;
*** 138,147 ****
--- 141,164 ----
tty->flush();
}
}
}
+ TrackPhaseTime::TrackPhaseTime(GCPhaseTimeTracker *data, uint phase) :
+ _data(data), _phase(phase) {
+ if (_data != NULL && _data->active()) {
+ _last = os::elapsed_counter();
+ }
+ }
+
+ TrackPhaseTime::~TrackPhaseTime() {
+ if (_data != NULL && _data->active()) {
+ double time = (double)(os::elapsed_counter() - _last) * 1000.0 / os::elapsed_frequency();
+ _data->set_value(_phase, time);
+ }
+ }
+
TraceCPUTime::TraceCPUTime(bool doit,
bool print_cr,
outputStream *logfile) :
_active(doit),
_print_cr(print_cr),
< prev index next >