src/share/vm/gc/g1/g1EvacStats.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 44,65 **** _direct_allocated * HeapWordSize, _failure_used * HeapWordSize, _failure_waste * HeapWordSize); } ! void G1EvacStats::adjust_desired_plab_sz() { ! log_plab_allocation(); ! ! if (!ResizePLAB) { ! // Clear accumulators for next round. ! reset(); ! return; ! } ! ! assert(is_object_aligned(max_size()) && min_size() <= max_size(), ! "PLAB clipping computation may be incorrect"); ! if (_allocated == 0) { assert((_unused == 0), "Inconsistency in PLAB stats: " "_allocated: " SIZE_FORMAT ", " "_wasted: " SIZE_FORMAT ", " --- 44,54 ---- _direct_allocated * HeapWordSize, _failure_used * HeapWordSize, _failure_waste * HeapWordSize); } ! size_t G1EvacStats::adjust_desired_plab_sz_helper() { if (_allocated == 0) { assert((_unused == 0), "Inconsistency in PLAB stats: " "_allocated: " SIZE_FORMAT ", " "_wasted: " SIZE_FORMAT ", "
*** 107,123 **** // which is an okay reaction. size_t const used_for_waste_calculation = used() > _region_end_waste ? used() - _region_end_waste : 0; size_t const total_waste_allowed = used_for_waste_calculation * TargetPLABWastePct; size_t const cur_plab_sz = (size_t)((double)total_waste_allowed / G1LastPLABAverageOccupancy); ! // Take historical weighted average ! _filter.sample(cur_plab_sz); ! _desired_net_plab_sz = MAX2(min_size(), (size_t)_filter.average()); ! ! log_sizing(cur_plab_sz, _desired_net_plab_sz); ! // Clear accumulators for next round. ! reset(); } G1EvacStats::G1EvacStats(const char* description, size_t desired_plab_sz_, unsigned wt) : PLABStats(description, desired_plab_sz_, wt), _region_end_waste(0), --- 96,106 ---- // which is an okay reaction. size_t const used_for_waste_calculation = used() > _region_end_waste ? used() - _region_end_waste : 0; size_t const total_waste_allowed = used_for_waste_calculation * TargetPLABWastePct; size_t const cur_plab_sz = (size_t)((double)total_waste_allowed / G1LastPLABAverageOccupancy); ! return cur_plab_sz; } G1EvacStats::G1EvacStats(const char* description, size_t desired_plab_sz_, unsigned wt) : PLABStats(description, desired_plab_sz_, wt), _region_end_waste(0),