Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 10372:e72f7eecc96d
8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
Summary: Fixed the output of G1SummarizeRSetStats: too small datatype for the number of concurrently processed cards, added concurrent remembered set thread time retrieval for Linux and Windows (BSD uses os::elapsedTime() now), and other cleanup. The information presented during VM operation is now relative to the previous output, not always cumulative if G1SummarizeRSetStatsPeriod > 0. At VM exit, the code prints a cumulative summary.
Reviewed-by: johnc, jwilhelm
author | tschatzl |
---|---|
date | Tue, 28 May 2013 09:32:06 +0200 |
parents | 001ec9515f84 |
children | 3a4805ad0005 |
comparison
equal
deleted
inserted
replaced
10371:c20186fa611b | 10372:e72f7eecc96d |
---|---|
3537 // Fill TLAB's and such | 3537 // Fill TLAB's and such |
3538 ensure_parsability(true); | 3538 ensure_parsability(true); |
3539 } | 3539 } |
3540 | 3540 |
3541 void G1CollectedHeap::gc_epilogue(bool full /* Ignored */) { | 3541 void G1CollectedHeap::gc_epilogue(bool full /* Ignored */) { |
3542 | |
3543 if (G1SummarizeRSetStats && | |
3544 (G1SummarizeRSetStatsPeriod > 0) && | |
3545 // we are at the end of the GC. Total collections has already been increased. | |
3546 ((total_collections() - 1) % G1SummarizeRSetStatsPeriod == 0)) { | |
3547 g1_rem_set()->print_periodic_summary_info(); | |
3548 } | |
3549 | |
3542 // FIXME: what is this about? | 3550 // FIXME: what is this about? |
3543 // I'm ignoring the "fill_newgen()" call if "alloc_event_enabled" | 3551 // I'm ignoring the "fill_newgen()" call if "alloc_event_enabled" |
3544 // is set. | 3552 // is set. |
3545 COMPILER2_PRESENT(assert(DerivedPointerTable::is_empty(), | 3553 COMPILER2_PRESENT(assert(DerivedPointerTable::is_empty(), |
3546 "derived pointer present")); | 3554 "derived pointer present")); |
4089 // We must call G1MonitoringSupport::update_sizes() in the same scoping level | 4097 // We must call G1MonitoringSupport::update_sizes() in the same scoping level |
4090 // as an active TraceMemoryManagerStats object (i.e. before the destructor for the | 4098 // as an active TraceMemoryManagerStats object (i.e. before the destructor for the |
4091 // TraceMemoryManagerStats is called) so that the G1 memory pools are updated | 4099 // TraceMemoryManagerStats is called) so that the G1 memory pools are updated |
4092 // before any GC notifications are raised. | 4100 // before any GC notifications are raised. |
4093 g1mm()->update_sizes(); | 4101 g1mm()->update_sizes(); |
4094 } | |
4095 | |
4096 if (G1SummarizeRSetStats && | |
4097 (G1SummarizeRSetStatsPeriod > 0) && | |
4098 (total_collections() % G1SummarizeRSetStatsPeriod == 0)) { | |
4099 g1_rem_set()->print_summary_info(); | |
4100 } | 4102 } |
4101 | 4103 |
4102 // It should now be safe to tell the concurrent mark thread to start | 4104 // It should now be safe to tell the concurrent mark thread to start |
4103 // without its logging output interfering with the logging output | 4105 // without its logging output interfering with the logging output |
4104 // that came from the pause. | 4106 // that came from the pause. |