annotate src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp @ 23089:a5b77ac78ad2

8129602: Incorrect GPL header causes RE script to create wrong output Summary: Fix up GPL headers so that the RE script works. Reviewed-by: stefank, dholmes, coleenp
author tschatzl
date Thu, 25 Jun 2015 10:12:25 +0200
parents cbc7c4c9e11c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
1 /*
23089
a5b77ac78ad2 8129602: Incorrect GPL header causes RE script to create wrong output
tschatzl
parents: 23024
diff changeset
2 * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
4 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
7 * published by the Free Software Foundation.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
8 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
13 * accompanied this code).
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
14 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
18 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
21 * questions.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
22 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
23 */
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
24
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
27
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
28 #include "memory/allocation.hpp"
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
29
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
30 class LineBuffer;
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
31
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
32 template <class T> class WorkerDataArray;
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
33
6220
jmasa
parents: 6219
diff changeset
34 class G1GCPhaseTimes : public CHeapObj<mtGC> {
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
35 friend class G1GCParPhasePrinter;
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
36
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
37 uint _active_gc_threads;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
38 uint _max_gc_threads;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
39
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
40 public:
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
41 enum GCParPhases {
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
42 GCWorkerStart,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
43 ExtRootScan,
22910
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
44 ThreadRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
45 StringTableRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
46 UniverseRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
47 JNIRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
48 ObjectSynchronizerRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
49 FlatProfilerRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
50 ManagementRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
51 SystemDictionaryRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
52 CLDGRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
53 JVMTIRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
54 CodeCacheRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
55 CMRefRoots,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
56 WaitForStrongCLD,
3ca53859c3c7 8027962: Per-phase timing measurements for strong roots processing
brutisso
parents: 22908
diff changeset
57 WeakCLDRoots,
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
58 SATBFiltering,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
59 UpdateRS,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
60 ScanRS,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
61 CodeRoots,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
62 ObjCopy,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
63 Termination,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
64 Other,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
65 GCWorkerTotal,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
66 GCWorkerEnd,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
67 StringDedupQueueFixup,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
68 StringDedupTableFixup,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
69 RedirtyCards,
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
70 GCParPhasesSentinel
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
71 };
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
72
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
73 private:
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
74 // Markers for grouping the phases in the GCPhases enum above
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
75 static const int GCMainParPhasesLast = GCWorkerEnd;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
76 static const int StringDedupPhasesFirst = StringDedupQueueFixup;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
77 static const int StringDedupPhasesLast = StringDedupTableFixup;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
78
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
79 WorkerDataArray<double>* _gc_par_phases[GCParPhasesSentinel];
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
80 WorkerDataArray<size_t>* _update_rs_processed_buffers;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
81 WorkerDataArray<size_t>* _termination_attempts;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
82 WorkerDataArray<size_t>* _redirtied_cards;
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
83
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
84 double _cur_collection_par_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
85 double _cur_collection_code_root_fixup_time_ms;
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
86 double _cur_strong_code_root_purge_time_ms;
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
87
17757
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
88 double _cur_evac_fail_recalc_used;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
89 double _cur_evac_fail_restore_remsets;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
90 double _cur_evac_fail_remove_self_forwards;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
91
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
92 double _cur_string_dedup_fixup_time_ms;
17764
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
93
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
94 double _cur_clear_ct_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
95 double _cur_ref_proc_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
96 double _cur_ref_enq_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
97
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
98 double _cur_collection_start_sec;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
99 double _root_region_scan_wait_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
100
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
101 double _recorded_young_cset_choice_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
102 double _recorded_non_young_cset_choice_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
103
17756
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
104 double _recorded_redirty_logged_cards_time_ms;
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
105
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
106 double _recorded_young_free_cset_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
107 double _recorded_non_young_free_cset_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
108
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
109 double _cur_fast_reclaim_humongous_time_ms;
23024
cbc7c4c9e11c 8048179: Early reclaim of large objects that are referenced by a few objects
tschatzl
parents: 22910
diff changeset
110 double _cur_fast_reclaim_humongous_register_time_ms;
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
111 size_t _cur_fast_reclaim_humongous_total;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
112 size_t _cur_fast_reclaim_humongous_candidates;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
113 size_t _cur_fast_reclaim_humongous_reclaimed;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
114
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
115 double _cur_verify_before_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
116 double _cur_verify_after_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
117
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
118 // Helper methods for detailed logging
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
119 void print_stats(int level, const char* str, double value);
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
120 void print_stats(int level, const char* str, size_t value);
17844
8847586c9037 8016302: Change type of the number of GC workers to unsigned int (2)
vkempik
parents: 17764
diff changeset
121 void print_stats(int level, const char* str, double value, uint workers);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
122
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
123 public:
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
124 G1GCPhaseTimes(uint max_gc_threads);
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
125 void note_gc_start(uint active_gc_threads, bool mark_in_progress);
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
126 void note_gc_end();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
127 void print(double pause_time_sec);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
128
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
129 // record the time a phase took in seconds
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
130 void record_time_secs(GCParPhases phase, uint worker_i, double secs);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
131
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
132 // add a number of seconds to a phase
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
133 void add_time_secs(GCParPhases phase, uint worker_i, double secs);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
134
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
135 void record_thread_work_item(GCParPhases phase, uint worker_i, size_t count);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
136
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
137 // return the average time for a phase in milliseconds
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
138 double average_time_ms(GCParPhases phase);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
139
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
140 size_t sum_thread_work_items(GCParPhases phase);
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
141
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
142 private:
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
143 double get_time_ms(GCParPhases phase, uint worker_i);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
144 double sum_time_ms(GCParPhases phase);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
145 double min_time_ms(GCParPhases phase);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
146 double max_time_ms(GCParPhases phase);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
147 size_t get_thread_work_item(GCParPhases phase, uint worker_i);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
148 double average_thread_work_items(GCParPhases phase);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
149 size_t min_thread_work_items(GCParPhases phase);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
150 size_t max_thread_work_items(GCParPhases phase);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
151
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
152 public:
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
153
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
154 void record_clear_ct_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
155 _cur_clear_ct_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
156 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
157
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
158 void record_par_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
159 _cur_collection_par_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
160 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
161
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
162 void record_code_root_fixup_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
163 _cur_collection_code_root_fixup_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
164 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
165
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
166 void record_strong_code_root_purge_time(double ms) {
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
167 _cur_strong_code_root_purge_time_ms = ms;
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
168 }
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
169
17757
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
170 void record_evac_fail_recalc_used_time(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
171 _cur_evac_fail_recalc_used = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
172 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
173
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
174 void record_evac_fail_restore_remsets(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
175 _cur_evac_fail_restore_remsets = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
176 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
177
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
178 void record_evac_fail_remove_self_forwards(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
179 _cur_evac_fail_remove_self_forwards = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
180 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
181
17764
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
182 void record_string_dedup_fixup_time(double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
183 _cur_string_dedup_fixup_time_ms = ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
184 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
185
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
186 void record_ref_proc_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
187 _cur_ref_proc_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
188 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
189
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
190 void record_ref_enq_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
191 _cur_ref_enq_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
192 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
193
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
194 void record_root_region_scan_wait_time(double time_ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
195 _root_region_scan_wait_time_ms = time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
196 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
197
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
198 void record_young_free_cset_time_ms(double time_ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
199 _recorded_young_free_cset_time_ms = time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
200 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
201
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
202 void record_non_young_free_cset_time_ms(double time_ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
203 _recorded_non_young_free_cset_time_ms = time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
204 }
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
205
23024
cbc7c4c9e11c 8048179: Early reclaim of large objects that are referenced by a few objects
tschatzl
parents: 22910
diff changeset
206 void record_fast_reclaim_humongous_stats(double time_ms, size_t total, size_t candidates) {
cbc7c4c9e11c 8048179: Early reclaim of large objects that are referenced by a few objects
tschatzl
parents: 22910
diff changeset
207 _cur_fast_reclaim_humongous_register_time_ms = time_ms;
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
208 _cur_fast_reclaim_humongous_total = total;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
209 _cur_fast_reclaim_humongous_candidates = candidates;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
210 }
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
211
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
212 void record_fast_reclaim_humongous_time_ms(double value, size_t reclaimed) {
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
213 _cur_fast_reclaim_humongous_time_ms = value;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
214 _cur_fast_reclaim_humongous_reclaimed = reclaimed;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
215 }
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
216
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
217 void record_young_cset_choice_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
218 _recorded_young_cset_choice_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
219 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
220
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
221 void record_non_young_cset_choice_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
222 _recorded_non_young_cset_choice_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
223 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
224
17756
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
225 void record_redirty_logged_cards_time_ms(double time_ms) {
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
226 _recorded_redirty_logged_cards_time_ms = time_ms;
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
227 }
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
228
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
229 void record_cur_collection_start_sec(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
230 _cur_collection_start_sec = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
231 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
232
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
233 void record_verify_before_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
234 _cur_verify_before_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
235 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
236
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
237 void record_verify_after_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
238 _cur_verify_after_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
239 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
240
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
241 double accounted_time_ms();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
242
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
243 double cur_collection_start_sec() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
244 return _cur_collection_start_sec;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
245 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
246
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
247 double cur_collection_par_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
248 return _cur_collection_par_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
249 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
250
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
251 double cur_clear_ct_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
252 return _cur_clear_ct_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
253 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
254
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
255 double root_region_scan_wait_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
256 return _root_region_scan_wait_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
257 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
258
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
259 double young_cset_choice_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
260 return _recorded_young_cset_choice_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
261 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
262
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
263 double young_free_cset_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
264 return _recorded_young_free_cset_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
265 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
266
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
267 double non_young_cset_choice_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
268 return _recorded_non_young_cset_choice_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
269 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
270
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
271 double non_young_free_cset_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
272 return _recorded_non_young_free_cset_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
273 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
274
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
275 double fast_reclaim_humongous_time_ms() {
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
276 return _cur_fast_reclaim_humongous_time_ms;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
277 }
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
278 };
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
279
22908
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
280 class G1GCParPhaseTimesTracker : public StackObj {
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
281 double _start_time;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
282 G1GCPhaseTimes::GCParPhases _phase;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
283 G1GCPhaseTimes* _phase_times;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
284 uint _worker_id;
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
285 public:
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
286 G1GCParPhaseTimesTracker(G1GCPhaseTimes* phase_times, G1GCPhaseTimes::GCParPhases phase, uint worker_id);
c3fcc09c9239 8074037: Refactor the G1GCPhaseTime logging to make it easier to add new phases
brutisso
parents: 20494
diff changeset
287 ~G1GCParPhaseTimesTracker();
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
288 };
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
289
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
290 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP