Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/src/share/vm/gc_implementation/shared/generationCounters.hpp
38921 views
/*1* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP25#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP2627#include "runtime/perfData.hpp"28#include "runtime/virtualspace.hpp"2930// A GenerationCounter is a holder class for performance counters31// that track a generation3233class GenerationCounters: public CHeapObj<mtGC> {34friend class VMStructs;3536private:37void initialize(const char* name, int ordinal, int spaces,38size_t min_capacity, size_t max_capacity,39size_t curr_capacity);4041protected:42PerfVariable* _current_size;43VirtualSpace* _virtual_space;4445// Constant PerfData types don't need to retain a reference.46// However, it's a good idea to document them here.47// PerfStringConstant* _name;48// PerfConstant* _min_size;49// PerfConstant* _max_size;50// PerfConstant* _spaces;5152char* _name_space;5354// This constructor is only meant for use with the PSGenerationCounters55// constructor. The need for such an constructor should be eliminated56// when VirtualSpace and PSVirtualSpace are unified.57GenerationCounters()58: _name_space(NULL), _current_size(NULL), _virtual_space(NULL) {}5960// This constructor is used for subclasses that do not have a space61// associated with them (e.g, in G1).62GenerationCounters(const char* name, int ordinal, int spaces,63size_t min_capacity, size_t max_capacity,64size_t curr_capacity);6566public:67GenerationCounters(const char* name, int ordinal, int spaces,68VirtualSpace* v);6970~GenerationCounters() {71if (_name_space != NULL) FREE_C_HEAP_ARRAY(char, _name_space, mtGC);72}7374virtual void update_all();7576const char* name_space() const { return _name_space; }7778};79#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP808182