< prev index next >

src/hotspot/share/gc/shared/genCollectedHeap.cpp

Print this page
rev 55927 : 8227224: GenCollectedHeap: add subspace transitions for young gen for gc+heap=info log lines
Reviewed-by:

*** 204,213 **** --- 204,226 ---- void GenCollectedHeap::ref_processing_init() { _young_gen->ref_processor_init(); _old_gen->ref_processor_init(); } + PreGenGCValues GenCollectedHeap::get_pre_gc_values() const { + const DefNewGeneration* const def_new_gen = (DefNewGeneration*) young_gen(); + + return PreGenGCValues(def_new_gen->used(), + def_new_gen->capacity(), + def_new_gen->eden()->used(), + def_new_gen->eden()->capacity(), + def_new_gen->from()->used(), + def_new_gen->from()->capacity(), + old_gen()->used(), + old_gen()->capacity()); + } + GenerationSpec* GenCollectedHeap::young_gen_spec() const { return _young_gen_spec; } GenerationSpec* GenCollectedHeap::old_gen_spec() const {
*** 579,591 **** bool complete = full && (max_generation == OldGen); bool old_collects_young = complete && !ScavengeBeforeFullGC; bool do_young_collection = !old_collects_young && _young_gen->should_collect(full, size, is_tlab); ! size_t young_prev_used = _young_gen->used(); ! size_t old_prev_used = _old_gen->used(); ! const metaspace::MetaspaceSizesSnapshot prev_meta_sizes; bool run_verification = total_collections() >= VerifyGCStartAt; bool prepared_for_verification = false; bool do_full_collection = false; --- 592,602 ---- bool complete = full && (max_generation == OldGen); bool old_collects_young = complete && !ScavengeBeforeFullGC; bool do_young_collection = !old_collects_young && _young_gen->should_collect(full, size, is_tlab); ! const PreGenGCValues pre_gc_values = get_pre_gc_values(); bool run_verification = total_collections() >= VerifyGCStartAt; bool prepared_for_verification = false; bool do_full_collection = false;
*** 623,634 **** do_full_collection = should_do_full_collection(size, full, is_tlab, max_generation); if (!do_full_collection) { // Adjust generation sizes. _young_gen->compute_new_size(); ! print_heap_change(young_prev_used, old_prev_used); ! MetaspaceUtils::print_metaspace_change(prev_meta_sizes); // Track memory usage and detect low memory after GC finishes MemoryService::track_memory_usage(); gc_epilogue(complete); --- 634,644 ---- do_full_collection = should_do_full_collection(size, full, is_tlab, max_generation); if (!do_full_collection) { // Adjust generation sizes. _young_gen->compute_new_size(); ! print_heap_change(pre_gc_values); // Track memory usage and detect low memory after GC finishes MemoryService::track_memory_usage(); gc_epilogue(complete);
*** 682,693 **** MetaspaceUtils::verify_metrics(); // Resize the metaspace capacity after full collections MetaspaceGC::compute_new_size(); update_full_collections_completed(); ! print_heap_change(young_prev_used, old_prev_used); ! MetaspaceUtils::print_metaspace_change(prev_meta_sizes); // Track memory usage and detect low memory after GC finishes MemoryService::track_memory_usage(); // Need to tell the epilogue code we are done with Full GC, regardless what was --- 692,702 ---- MetaspaceUtils::verify_metrics(); // Resize the metaspace capacity after full collections MetaspaceGC::compute_new_size(); update_full_collections_completed(); ! print_heap_change(pre_gc_values); // Track memory usage and detect low memory after GC finishes MemoryService::track_memory_usage(); // Need to tell the epilogue code we are done with Full GC, regardless what was
*** 1266,1280 **** _young_gen->print_summary_info_on(&lsh); _old_gen->print_summary_info_on(&lsh); } } ! void GenCollectedHeap::print_heap_change(size_t young_prev_used, size_t old_prev_used) const { ! log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)", ! _young_gen->short_name(), young_prev_used / K, _young_gen->used() /K, _young_gen->capacity() /K); ! log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)", ! _old_gen->short_name(), old_prev_used / K, _old_gen->used() /K, _old_gen->capacity() /K); } class GenGCPrologueClosure: public GenCollectedHeap::GenClosure { private: bool _full; --- 1275,1312 ---- _young_gen->print_summary_info_on(&lsh); _old_gen->print_summary_info_on(&lsh); } } ! void GenCollectedHeap::print_heap_change(const PreGenGCValues& pre_gc_values) const { ! const DefNewGeneration* const def_new_gen = (DefNewGeneration*) young_gen(); ! ! log_info(gc, heap)(HEAP_CHANGE_FORMAT" " ! HEAP_CHANGE_FORMAT" " ! HEAP_CHANGE_FORMAT, ! HEAP_CHANGE_FORMAT_ARGS(def_new_gen->short_name(), ! pre_gc_values.young_gen_used(), ! pre_gc_values.young_gen_capacity(), ! def_new_gen->used(), ! def_new_gen->capacity()), ! HEAP_CHANGE_FORMAT_ARGS("Eden", ! pre_gc_values.eden_used(), ! pre_gc_values.eden_capacity(), ! def_new_gen->eden()->used(), ! def_new_gen->eden()->capacity()), ! HEAP_CHANGE_FORMAT_ARGS("From", ! pre_gc_values.from_used(), ! pre_gc_values.from_capacity(), ! def_new_gen->from()->used(), ! def_new_gen->from()->capacity())); ! log_info(gc, heap)(HEAP_CHANGE_FORMAT, ! HEAP_CHANGE_FORMAT_ARGS(old_gen()->short_name(), ! pre_gc_values.old_gen_used(), ! pre_gc_values.old_gen_capacity(), ! old_gen()->used(), ! old_gen()->capacity())); ! MetaspaceUtils::print_metaspace_change(pre_gc_values.metaspace_sizes()); } class GenGCPrologueClosure: public GenCollectedHeap::GenClosure { private: bool _full;
< prev index next >