< prev index next >
src/share/vm/runtime/timer.hpp
Print this page
rev 7854 : imported patch 8027962-per-phase-timing-measurements-for-strong-roots-processing
rev 7855 : [mq]: 8027962-bengt-suggestions
*** 1,7 ****
/*
! * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 101,110 ****
--- 101,127 ----
// Activation
void suspend() { if (_active) _t.stop(); }
void resume() { if (_active) _t.start(); }
};
+ class PhaseTimeData : public StackObj {
+ public:
+ virtual bool active() const = 0;
+ virtual void set_value(uint phase, double value) = 0;
+ };
+
+ class TrackPhaseTime : public StackObj {
+ private:
+ PhaseTimeData* _data;
+ uint _phase;
+ jlong _last;
+ public:
+ // Constructors
+ TrackPhaseTime(PhaseTimeData *data, uint phase);
+ ~TrackPhaseTime();
+ };
+
class TraceCPUTime: public StackObj {
private:
bool _active; // true if times will be measured and printed
bool _print_cr; // if true print carriage return at end
double _starting_user_time; // user time at start of measurement
< prev index next >