--- old/src/share/vm/gc/g1/g1CollectedHeap.cpp 2015-06-12 14:50:31.516058862 +0200 +++ new/src/share/vm/gc/g1/g1CollectedHeap.cpp 2015-06-12 14:50:31.356053662 +0200 @@ -5315,6 +5315,16 @@ g1_policy()->phase_times()->record_ref_enq_time(ref_enq_time * 1000.0); } +class TimedTask : public AbstractGangTask { + public: + TimedTask() : AbstractGangTask("TimedTask") {} + void work(uint worker_id) { + // Do nothing. + } +}; + +#include "utilities/ticks.inline.hpp" + void G1CollectedHeap::evacuate_collection_set(EvacuationInfo& evacuation_info) { _expand_heap_after_alloc_failure = true; _evacuation_failed = false; @@ -5337,6 +5347,18 @@ double start_par_time_sec = os::elapsedTime(); double end_par_time_sec; + for (int i = 0; i < NewCodeParameter; i++) { + TimedTask task; + jlong start = os::elapsed_counter(); + workers()->run_task(&task); + jlong end = os::elapsed_counter(); + + gclog_or_tty->print_cr("TimedTask %f ms (%f - %f)", + TimeHelper::counter_to_millis(end - start), + TimeHelper::counter_to_millis(start), + TimeHelper::counter_to_millis(end)); + } + { G1RootProcessor root_processor(this, n_workers); G1ParTask g1_par_task(this, _task_queues, &root_processor, n_workers);