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_G1_G1FULLGCSCOPE_HPP
26 #define SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
27
28 #include "gc/g1/g1CollectedHeap.hpp"
29 #include "gc/shared/collectorCounters.hpp"
30 #include "gc/shared/gcId.hpp"
31 #include "gc/shared/gcTrace.hpp"
32 #include "gc/shared/gcTraceTime.hpp"
33 #include "gc/shared/gcTimer.hpp"
34 #include "gc/shared/isGCActiveMark.hpp"
35 #include "gc/shared/vmGCOperations.hpp"
36 #include "memory/allocation.hpp"
37 #include "services/memoryService.hpp"
38
39 class G1FullGCScope : public StackObj {
40 ResourceMark _rm;
41 bool _explicit_gc;
42 G1CollectedHeap* _g1h;
43 GCIdMark _gc_id;
44 SvcGCMarker _svc_marker;
45 STWGCTimer _timer;
46 SerialOldTracer _tracer;
47 IsGCActiveMark _active;
48 GCTraceCPUTime _cpu_time;
49 ClearedAllSoftRefs _soft_refs;
50 TraceCollectorStats _collector_stats;
51 TraceMemoryManagerStats _memory_stats;
52
53 // Singleton instance.
54 static G1FullGCScope* _instance;
55 public:
56 static G1FullGCScope* instance();
57
58 G1FullGCScope(bool explicit_gc, bool clear_soft);
59 ~G1FullGCScope();
60
61 bool is_explicit_gc();
62 bool should_clear_soft_refs();
63
64 STWGCTimer* timer();
65 SerialOldTracer* tracer();
66 };
67
68 #endif //SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
|
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_G1_G1FULLGCSCOPE_HPP
26 #define SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
27
28 #include "gc/g1/g1CollectedHeap.hpp"
29 #include "gc/g1/g1HeapTransition.hpp"
30 #include "gc/shared/collectorCounters.hpp"
31 #include "gc/shared/gcId.hpp"
32 #include "gc/shared/gcTrace.hpp"
33 #include "gc/shared/gcTraceTime.hpp"
34 #include "gc/shared/gcTimer.hpp"
35 #include "gc/shared/isGCActiveMark.hpp"
36 #include "gc/shared/vmGCOperations.hpp"
37 #include "memory/allocation.hpp"
38 #include "services/memoryService.hpp"
39
40 // Class used to group scoped objects used in the Full GC together.
41 class G1FullGCScope : public StackObj {
42 ResourceMark _rm;
43 bool _explicit_gc;
44 G1CollectedHeap* _g1h;
45 GCIdMark _gc_id;
46 SvcGCMarker _svc_marker;
47 STWGCTimer _timer;
48 SerialOldTracer _tracer;
49 IsGCActiveMark _active;
50 GCTraceCPUTime _cpu_time;
51 ClearedAllSoftRefs _soft_refs;
52 TraceCollectorStats _collector_stats;
53 TraceMemoryManagerStats _memory_stats;
54 G1HeapTransition _heap_transition;
55
56 // Singleton instance.
57 static G1FullGCScope* _instance;
58 public:
59 static G1FullGCScope* instance();
60
61 G1FullGCScope(bool explicit_gc, bool clear_soft);
62 ~G1FullGCScope();
63
64 bool is_explicit_gc();
65 bool should_clear_soft_refs();
66
67 STWGCTimer* timer();
68 SerialOldTracer* tracer();
69 G1HeapTransition* heap_transition();
70 };
71
72 #endif //SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
|