< prev index next >

src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp

Print this page

        

*** 123,132 **** --- 123,136 ---- } } template <class T> void WorkerDataArray<T>::verify() { + if (!_enabled) { + return; + } + for (uint i = 0; i < _length; i++) { assert(_data[i] != WorkerDataArray<T>::uninitialized(), err_msg("Invalid data for worker %u in '%s'", i, _title)); } if (_sub_count != NULL) {
*** 310,324 **** --- 314,332 ---- } } G1GCPhaseTimesTracker::G1GCPhaseTimesTracker(G1GCPhaseTimes* phase_times, G1GCPhaseTimes::GCPhases phase, uint worker_id) : _phase_times(phase_times), _phase(phase), _worker_id(worker_id) { + if (_phase_times != NULL) { _start_time = os::elapsedTime(); + } } G1GCPhaseTimesTracker::~G1GCPhaseTimesTracker() { + if (_phase_times != NULL) { _phase_times->record_time_secs(_phase, _worker_id, os::elapsedTime() - _start_time); + } } void G1GCPhasePrinter::print_single_length(G1GCPhaseTimes::GCPhases phase_id, WorkerDataArray<double>* phase) { // No need for min, max, average and sum for only one worker LineBuffer buf(phase->_indent_level);
< prev index next >