--- old/src/hotspot/share/gc/shared/genCollectedHeap.cpp 2020-07-23 16:59:12.658776213 +0200 +++ new/src/hotspot/share/gc/shared/genCollectedHeap.cpp 2020-07-23 16:59:12.542774448 +0200 @@ -1362,37 +1362,3 @@ } return oop(result); } - -class GenTimeOfLastGCClosure: public GenCollectedHeap::GenClosure { - jlong _time; // in ms - jlong _now; // in ms - - public: - GenTimeOfLastGCClosure(jlong now) : _time(now), _now(now) { } - - jlong time() { return _time; } - - void do_generation(Generation* gen) { - _time = MIN2(_time, gen->time_of_last_gc(_now)); - } -}; - -jlong GenCollectedHeap::millis_since_last_gc() { - // javaTimeNanos() is guaranteed to be monotonically non-decreasing - // provided the underlying platform provides such a time source - // (and it is bug free). So we still have to guard against getting - // back a time later than 'now'. - jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC; - GenTimeOfLastGCClosure tolgc_cl(now); - // iterate over generations getting the oldest - // time that a generation was collected - generation_iterate(&tolgc_cl, false); - - jlong retVal = now - tolgc_cl.time(); - if (retVal < 0) { - log_warning(gc)("millis_since_last_gc() would return : " JLONG_FORMAT - ". returning zero instead.", retVal); - return 0; - } - return retVal; -}