Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 1611:215576b54709
6946048: G1: improvements to +PrintGCDetails output
Summary: Small improvements to G1's PrintGCDetails output. It also includes minor formatting details.
Reviewed-by: ysr, johnc
author | tonyp |
---|---|
date | Thu, 22 Apr 2010 15:20:16 -0400 |
parents | e9ff18c4ace7 |
children | 4e5661ba9d98 |
comparison
equal
deleted
inserted
replaced
1610:79107c3a6bd5 | 1611:215576b54709 |
---|---|
3970 return queues()->queue(i); | 3970 return queues()->queue(i); |
3971 } | 3971 } |
3972 | 3972 |
3973 void work(int i) { | 3973 void work(int i) { |
3974 if (i >= _n_workers) return; // no work needed this round | 3974 if (i >= _n_workers) return; // no work needed this round |
3975 | |
3976 double start_time_ms = os::elapsedTime() * 1000.0; | |
3977 _g1h->g1_policy()->record_gc_worker_start_time(i, start_time_ms); | |
3978 | |
3975 ResourceMark rm; | 3979 ResourceMark rm; |
3976 HandleMark hm; | 3980 HandleMark hm; |
3977 | 3981 |
3978 G1ParScanThreadState pss(_g1h, i); | 3982 G1ParScanThreadState pss(_g1h, i); |
3979 G1ParScanHeapEvacClosure scan_evac_cl(_g1h, &pss); | 3983 G1ParScanHeapEvacClosure scan_evac_cl(_g1h, &pss); |
4017 G1ParEvacuateFollowersClosure evac(_g1h, &pss, _queues, &_terminator); | 4021 G1ParEvacuateFollowersClosure evac(_g1h, &pss, _queues, &_terminator); |
4018 evac.do_void(); | 4022 evac.do_void(); |
4019 double elapsed_ms = (os::elapsedTime()-start)*1000.0; | 4023 double elapsed_ms = (os::elapsedTime()-start)*1000.0; |
4020 double term_ms = pss.term_time()*1000.0; | 4024 double term_ms = pss.term_time()*1000.0; |
4021 _g1h->g1_policy()->record_obj_copy_time(i, elapsed_ms-term_ms); | 4025 _g1h->g1_policy()->record_obj_copy_time(i, elapsed_ms-term_ms); |
4022 _g1h->g1_policy()->record_termination_time(i, term_ms); | 4026 _g1h->g1_policy()->record_termination(i, term_ms, pss.term_attempts()); |
4023 } | 4027 } |
4024 _g1h->g1_policy()->record_thread_age_table(pss.age_table()); | 4028 _g1h->g1_policy()->record_thread_age_table(pss.age_table()); |
4025 _g1h->update_surviving_young_words(pss.surviving_young_words()+1); | 4029 _g1h->update_surviving_young_words(pss.surviving_young_words()+1); |
4026 | 4030 |
4027 // Clean up any par-expanded rem sets. | 4031 // Clean up any par-expanded rem sets. |
4041 double elapsed = pss.elapsed(); | 4045 double elapsed = pss.elapsed(); |
4042 double strong_roots = pss.strong_roots_time(); | 4046 double strong_roots = pss.strong_roots_time(); |
4043 double term = pss.term_time(); | 4047 double term = pss.term_time(); |
4044 gclog_or_tty->print(" Elapsed: %7.2f ms.\n" | 4048 gclog_or_tty->print(" Elapsed: %7.2f ms.\n" |
4045 " Strong roots: %7.2f ms (%6.2f%%)\n" | 4049 " Strong roots: %7.2f ms (%6.2f%%)\n" |
4046 " Termination: %7.2f ms (%6.2f%%) (in %d entries)\n", | 4050 " Termination: %7.2f ms (%6.2f%%) " |
4051 "(in "SIZE_FORMAT" entries)\n", | |
4047 elapsed * 1000.0, | 4052 elapsed * 1000.0, |
4048 strong_roots * 1000.0, (strong_roots*100.0/elapsed), | 4053 strong_roots * 1000.0, (strong_roots*100.0/elapsed), |
4049 term * 1000.0, (term*100.0/elapsed), | 4054 term * 1000.0, (term*100.0/elapsed), |
4050 pss.term_attempts()); | 4055 pss.term_attempts()); |
4051 size_t total_waste = pss.alloc_buffer_waste() + pss.undo_waste(); | 4056 size_t total_waste = pss.alloc_buffer_waste() + pss.undo_waste(); |
4057 (pss.undo_waste() * HeapWordSize) / K); | 4062 (pss.undo_waste() * HeapWordSize) / K); |
4058 } | 4063 } |
4059 | 4064 |
4060 assert(pss.refs_to_scan() == 0, "Task queue should be empty"); | 4065 assert(pss.refs_to_scan() == 0, "Task queue should be empty"); |
4061 assert(pss.overflowed_refs_to_scan() == 0, "Overflow queue should be empty"); | 4066 assert(pss.overflowed_refs_to_scan() == 0, "Overflow queue should be empty"); |
4067 double end_time_ms = os::elapsedTime() * 1000.0; | |
4068 _g1h->g1_policy()->record_gc_worker_end_time(i, end_time_ms); | |
4062 } | 4069 } |
4063 }; | 4070 }; |
4064 | 4071 |
4065 // *** Common G1 Evacuation Stuff | 4072 // *** Common G1 Evacuation Stuff |
4066 | 4073 |