1 /*
2 * Copyright (c) 2004, 2013, Oracle and/or its affiliates. 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 it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 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 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP
26 #define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP
27
28 #include "utilities/macros.hpp"
29 #if INCLUDE_ALL_GCS
30 #include "gc_implementation/shared/adaptiveSizePolicy.hpp"
31 #include "gc_implementation/shared/gcPolicyCounters.hpp"
32 #endif // INCLUDE_ALL_GCS
33
34 // This class keeps statistical information and computes the
35 // size of the heap.
36
37 class GCAdaptivePolicyCounters : public GCPolicyCounters {
38 protected:
39 PerfVariable* _eden_size_counter;
40 PerfVariable* _promo_size_counter;
41
42 PerfVariable* _young_capacity_counter;
43
44 PerfVariable* _minor_gc_cost_counter;
45 PerfVariable* _major_gc_cost_counter;
46 PerfVariable* _mutator_cost_counter;
47
48 PerfVariable* _avg_young_live_counter;
49 PerfVariable* _avg_old_live_counter;
50
51 PerfVariable* _avg_minor_pause_counter;
215
216 inline void update_minor_collection_slope_counter() {
217 _minor_collection_slope_counter->set_value(
218 (jlong)(size_policy()->minor_collection_slope() * 1000)
219 );
220 }
221
222 inline void update_major_collection_slope_counter() {
223 _major_collection_slope_counter->set_value(
224 (jlong)(size_policy()->major_collection_slope() * 1000)
225 );
226 }
227
228 void set_size_policy(AdaptiveSizePolicy* v) { _size_policy = v; }
229
230 virtual GCPolicyCounters::Name kind() const {
231 return GCPolicyCounters::GCAdaptivePolicyCountersKind;
232 }
233 };
234
235 #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP
|
1 /*
2 * Copyright (c) 2004, 2015, Oracle and/or its affiliates. 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 it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 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 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP
26 #define SHARE_VM_GC_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP
27
28 #include "utilities/macros.hpp"
29 #if INCLUDE_ALL_GCS
30 #include "gc/shared/adaptiveSizePolicy.hpp"
31 #include "gc/shared/gcPolicyCounters.hpp"
32 #endif // INCLUDE_ALL_GCS
33
34 // This class keeps statistical information and computes the
35 // size of the heap.
36
37 class GCAdaptivePolicyCounters : public GCPolicyCounters {
38 protected:
39 PerfVariable* _eden_size_counter;
40 PerfVariable* _promo_size_counter;
41
42 PerfVariable* _young_capacity_counter;
43
44 PerfVariable* _minor_gc_cost_counter;
45 PerfVariable* _major_gc_cost_counter;
46 PerfVariable* _mutator_cost_counter;
47
48 PerfVariable* _avg_young_live_counter;
49 PerfVariable* _avg_old_live_counter;
50
51 PerfVariable* _avg_minor_pause_counter;
215
216 inline void update_minor_collection_slope_counter() {
217 _minor_collection_slope_counter->set_value(
218 (jlong)(size_policy()->minor_collection_slope() * 1000)
219 );
220 }
221
222 inline void update_major_collection_slope_counter() {
223 _major_collection_slope_counter->set_value(
224 (jlong)(size_policy()->major_collection_slope() * 1000)
225 );
226 }
227
228 void set_size_policy(AdaptiveSizePolicy* v) { _size_policy = v; }
229
230 virtual GCPolicyCounters::Name kind() const {
231 return GCPolicyCounters::GCAdaptivePolicyCountersKind;
232 }
233 };
234
235 #endif // SHARE_VM_GC_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP
|