34 class PSOldGen; |
34 class PSOldGen; |
35 |
35 |
36 class PSMarkSweep : public MarkSweep { |
36 class PSMarkSweep : public MarkSweep { |
37 private: |
37 private: |
38 static elapsedTimer _accumulated_time; |
38 static elapsedTimer _accumulated_time; |
39 static unsigned int _total_invocations; |
|
40 static jlong _time_of_last_gc; // ms |
39 static jlong _time_of_last_gc; // ms |
41 static CollectorCounters* _counters; |
40 static CollectorCounters* _counters; |
42 |
41 |
43 // Closure accessors |
42 // Closure accessors |
44 static OopClosure* mark_and_push_closure() { return &MarkSweep::mark_and_push_closure; } |
43 static OopClosure* mark_and_push_closure() { return &MarkSweep::mark_and_push_closure; } |
|
44 static KlassClosure* follow_klass_closure() { return &MarkSweep::follow_klass_closure; } |
45 static VoidClosure* follow_stack_closure() { return (VoidClosure*)&MarkSweep::follow_stack_closure; } |
45 static VoidClosure* follow_stack_closure() { return (VoidClosure*)&MarkSweep::follow_stack_closure; } |
46 static OopClosure* adjust_pointer_closure() { return (OopClosure*)&MarkSweep::adjust_pointer_closure; } |
46 static OopClosure* adjust_pointer_closure() { return (OopClosure*)&MarkSweep::adjust_pointer_closure; } |
47 static OopClosure* adjust_root_pointer_closure() { return (OopClosure*)&MarkSweep::adjust_root_pointer_closure; } |
47 static OopClosure* adjust_root_pointer_closure() { return (OopClosure*)&MarkSweep::adjust_root_pointer_closure; } |
|
48 static KlassClosure* adjust_klass_closure() { return &MarkSweep::adjust_klass_closure; } |
48 static BoolObjectClosure* is_alive_closure() { return (BoolObjectClosure*)&MarkSweep::is_alive; } |
49 static BoolObjectClosure* is_alive_closure() { return (BoolObjectClosure*)&MarkSweep::is_alive; } |
49 |
50 |
50 debug_only(public:) // Used for PSParallelCompact debugging |
51 debug_only(public:) // Used for PSParallelCompact debugging |
51 // Mark live objects |
52 // Mark live objects |
52 static void mark_sweep_phase1(bool clear_all_softrefs); |
53 static void mark_sweep_phase1(bool clear_all_softrefs); |
82 |
83 |
83 static void initialize(); |
84 static void initialize(); |
84 |
85 |
85 // Public accessors |
86 // Public accessors |
86 static elapsedTimer* accumulated_time() { return &_accumulated_time; } |
87 static elapsedTimer* accumulated_time() { return &_accumulated_time; } |
87 static unsigned int total_invocations() { return _total_invocations; } |
|
88 static CollectorCounters* counters() { return _counters; } |
88 static CollectorCounters* counters() { return _counters; } |
89 |
89 |
90 // Time since last full gc (in milliseconds) |
90 // Time since last full gc (in milliseconds) |
91 static jlong millis_since_last_gc(); |
91 static jlong millis_since_last_gc(); |
92 }; |
92 }; |