--- old/src/share/vm/runtime/timer.cpp 2015-10-08 07:24:33.000000000 -1000 +++ new/src/share/vm/runtime/timer.cpp 2015-10-08 07:24:33.000000000 -1000 @@ -36,6 +36,22 @@ return counter_to_seconds(counter) * 1000.0; } +elapsedTimer::elapsedTimer(jlong time, jlong timeUnitsPerSecond) { + _active = false; + jlong osTimeUnitsPerSecond = os::elapsed_frequency(); + assert(osTimeUnitsPerSecond % 1000 == 0, "must be"); + assert(timeUnitsPerSecond % 1000 == 0, "must be"); + while (osTimeUnitsPerSecond < timeUnitsPerSecond) { + timeUnitsPerSecond /= 1000; + time *= 1000; + } + while (osTimeUnitsPerSecond > timeUnitsPerSecond) { + timeUnitsPerSecond *= 1000; + time /= 1000; + } + _counter = time; +} + void elapsedTimer::add(elapsedTimer t) { _counter += t._counter; }