src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
Print this page
rev 4323 : 8010780: G1: Eden occupancy/capacity output wrong after a full GC
Summary: Move the calculation and recording of eden capacity to the start of a GC and print a detailed heap transition for full GCs.
Reviewed-by:
*** 669,706 ****
GenRemSet::Name rem_set_name() { return GenRemSet::CardTable; }
bool need_to_start_conc_mark(const char* source, size_t alloc_word_size = 0);
! // Update the heuristic info to record a collection pause of the given
! // start time, where the given number of bytes were used at the start.
! // This may involve changing the desired size of a collection set.
! void record_stop_world_start();
!
! void record_collection_pause_start(double start_time_sec, size_t start_used);
// Must currently be called while the world is stopped.
! void record_concurrent_mark_init_end(double
! mark_init_elapsed_time_ms);
void record_concurrent_mark_remark_start();
void record_concurrent_mark_remark_end();
void record_concurrent_mark_cleanup_start();
void record_concurrent_mark_cleanup_end(int no_of_gc_threads);
void record_concurrent_mark_cleanup_completed();
! void record_concurrent_pause();
! void record_collection_pause_end(double pause_time);
void print_heap_transition();
void print_detailed_heap_transition();
! // Record the fact that a full collection occurred.
! void record_full_collection_start();
! void record_full_collection_end();
// Record how much space we copied during a GC. This is typically
// called when a GC alloc region is being retired.
void record_bytes_copied_during_gc(size_t bytes) {
_bytes_copied_during_gc += bytes;
--- 669,708 ----
GenRemSet::Name rem_set_name() { return GenRemSet::CardTable; }
bool need_to_start_conc_mark(const char* source, size_t alloc_word_size = 0);
! // Record the start and end of an evacuation pause.
! void record_collection_pause_start(double start_time_sec);
! void record_collection_pause_end(double pause_time_ms);
! // Record the start and end of a full collection.
! void record_full_collection_start();
! void record_full_collection_end();
// Must currently be called while the world is stopped.
! void record_concurrent_mark_init_end(double mark_init_elapsed_time_ms);
+ // Record start and end of remark.
void record_concurrent_mark_remark_start();
void record_concurrent_mark_remark_end();
+ // Record start, end, and completion of cleanup.
void record_concurrent_mark_cleanup_start();
void record_concurrent_mark_cleanup_end(int no_of_gc_threads);
void record_concurrent_mark_cleanup_completed();
! // Records the information about the heap size for reporting in
! // print_detailed_heap_transition
! void record_heap_size_info_at_start();
! // Print heap sizing transition (with less and more detail).
void print_heap_transition();
void print_detailed_heap_transition();
! void record_stop_world_start();
! void record_concurrent_pause();
// Record how much space we copied during a GC. This is typically
// called when a GC alloc region is being retired.
void record_bytes_copied_during_gc(size_t bytes) {
_bytes_copied_during_gc += bytes;