comparison src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @ 10098:71013d764f6e

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: tschatzl, jmasa
author johnc
date Wed, 10 Apr 2013 10:57:34 -0700
parents 27714220e50e
children 48391ab0687e
comparison
equal deleted inserted replaced
9075:ba42fd5e00e6 10098:71013d764f6e
1 /* 1 /*
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
669 669
670 GenRemSet::Name rem_set_name() { return GenRemSet::CardTable; } 670 GenRemSet::Name rem_set_name() { return GenRemSet::CardTable; }
671 671
672 bool need_to_start_conc_mark(const char* source, size_t alloc_word_size = 0); 672 bool need_to_start_conc_mark(const char* source, size_t alloc_word_size = 0);
673 673
674 // Update the heuristic info to record a collection pause of the given 674 // Record the start and end of an evacuation pause.
675 // start time, where the given number of bytes were used at the start. 675 void record_collection_pause_start(double start_time_sec);
676 // This may involve changing the desired size of a collection set. 676 void record_collection_pause_end(double pause_time_ms);
677 677
678 void record_stop_world_start(); 678 // Record the start and end of a full collection.
679 679 void record_full_collection_start();
680 void record_collection_pause_start(double start_time_sec, size_t start_used); 680 void record_full_collection_end();
681 681
682 // Must currently be called while the world is stopped. 682 // Must currently be called while the world is stopped.
683 void record_concurrent_mark_init_end(double 683 void record_concurrent_mark_init_end(double mark_init_elapsed_time_ms);
684 mark_init_elapsed_time_ms); 684
685 685 // Record start and end of remark.
686 void record_concurrent_mark_remark_start(); 686 void record_concurrent_mark_remark_start();
687 void record_concurrent_mark_remark_end(); 687 void record_concurrent_mark_remark_end();
688 688
689 // Record start, end, and completion of cleanup.
689 void record_concurrent_mark_cleanup_start(); 690 void record_concurrent_mark_cleanup_start();
690 void record_concurrent_mark_cleanup_end(int no_of_gc_threads); 691 void record_concurrent_mark_cleanup_end(int no_of_gc_threads);
691 void record_concurrent_mark_cleanup_completed(); 692 void record_concurrent_mark_cleanup_completed();
692 693
693 void record_concurrent_pause(); 694 // Records the information about the heap size for reporting in
694 695 // print_detailed_heap_transition
695 void record_collection_pause_end(double pause_time); 696 void record_heap_size_info_at_start();
697
698 // Print heap sizing transition (with less and more detail).
696 void print_heap_transition(); 699 void print_heap_transition();
697 void print_detailed_heap_transition(); 700 void print_detailed_heap_transition();
698 701
699 // Record the fact that a full collection occurred. 702 void record_stop_world_start();
700 void record_full_collection_start(); 703 void record_concurrent_pause();
701 void record_full_collection_end();
702 704
703 // Record how much space we copied during a GC. This is typically 705 // Record how much space we copied during a GC. This is typically
704 // called when a GC alloc region is being retired. 706 // called when a GC alloc region is being retired.
705 void record_bytes_copied_during_gc(size_t bytes) { 707 void record_bytes_copied_during_gc(size_t bytes) {
706 _bytes_copied_during_gc += bytes; 708 _bytes_copied_during_gc += bytes;