Path: blob/master/src/hotspot/share/gc/epsilon/epsilon_globals.hpp
41152 views
/*1* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.2* Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.3* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.4*5* This code is free software; you can redistribute it and/or modify it6* under the terms of the GNU General Public License version 2 only, as7* published by the Free Software Foundation.8*9* This code is distributed in the hope that it will be useful, but WITHOUT10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License12* version 2 for more details (a copy is included in the LICENSE file that13* accompanied this code).14*15* You should have received a copy of the GNU General Public License version16* 2 along with this work; if not, write to the Free Software Foundation,17* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.18*19* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA20* or visit www.oracle.com if you need additional information or have any21* questions.22*23*/2425#ifndef SHARE_GC_EPSILON_EPSILON_GLOBALS_HPP26#define SHARE_GC_EPSILON_EPSILON_GLOBALS_HPP2728#include "runtime/globals_shared.hpp"2930//31// Defines all globals flags used by the Epsilon GC.32//3334#define GC_EPSILON_FLAGS(develop, \35develop_pd, \36product, \37product_pd, \38notproduct, \39range, \40constraint) \41\42product(size_t, EpsilonPrintHeapSteps, 20, EXPERIMENTAL, \43"Print heap occupancy stats with this number of steps. " \44"0 turns the printing off.") \45range(0, max_intx) \46\47product(size_t, EpsilonUpdateCountersStep, 1 * M, EXPERIMENTAL, \48"Update heap occupancy counters after allocating this much " \49"memory. Higher values would make allocations faster at " \50"the expense of lower resolution in heap counters.") \51range(1, max_intx) \52\53product(size_t, EpsilonMaxTLABSize, 4 * M, EXPERIMENTAL, \54"Max TLAB size to use with Epsilon GC. Larger value improves " \55"performance at the expense of per-thread memory waste. This " \56"asks TLAB machinery to cap TLAB sizes at this value.") \57range(1, max_intx) \58\59product(bool, EpsilonElasticTLAB, true, EXPERIMENTAL, \60"Use elastic policy to manage TLAB sizes. This conserves memory " \61"for non-actively allocating threads, even when they request " \62"large TLABs for themselves. Active threads would experience " \63"smaller TLABs until policy catches up.") \64\65product(bool, EpsilonElasticTLABDecay, true, EXPERIMENTAL, \66"Use timed decays to shrink TLAB sizes. This conserves memory " \67"for the threads that allocate in bursts of different sizes, " \68"for example the small/rare allocations coming after the initial "\69"large burst.") \70\71product(double, EpsilonTLABElasticity, 1.1, EXPERIMENTAL, \72"Multiplier to use when deciding on next TLAB size. Larger value "\73"improves performance at the expense of per-thread memory waste. "\74"Lower value improves memory footprint, but penalizes actively " \75"allocating threads.") \76range(1.0, DBL_MAX) \77\78product(size_t, EpsilonTLABDecayTime, 1000, EXPERIMENTAL, \79"TLAB sizing policy decays to initial size after thread had not " \80"allocated for this long. Time is in milliseconds. Lower value " \81"improves memory footprint, but penalizes actively allocating " \82"threads.") \83range(1, max_intx) \84\85product(size_t, EpsilonMinHeapExpand, 128 * M, EXPERIMENTAL, \86"Min expansion step for heap. Larger value improves performance " \87"at the potential expense of memory waste.") \88range(1, max_intx)8990// end of GC_EPSILON_FLAGS9192#endif // SHARE_GC_EPSILON_EPSILON_GLOBALS_HPP939495