< prev index next >

src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp

Print this page




 957 
 958  private:
 959   static STWGCTimer           _gc_timer;
 960   static ParallelOldTracer    _gc_tracer;
 961   static elapsedTimer         _accumulated_time;
 962   static unsigned int         _total_invocations;
 963   static unsigned int         _maximum_compaction_gc_num;
 964   static jlong                _time_of_last_gc;   // ms
 965   static CollectorCounters*   _counters;
 966   static ParMarkBitMap        _mark_bitmap;
 967   static ParallelCompactData  _summary_data;
 968   static IsAliveClosure       _is_alive_closure;
 969   static SpaceInfo            _space_info[last_space_id];
 970   static bool                 _print_phases;
 971   static AdjustPointerClosure _adjust_pointer_closure;
 972   static AdjustKlassClosure   _adjust_klass_closure;
 973 
 974   // Reference processing (used in ...follow_contents)
 975   static ReferenceProcessor*  _ref_processor;
 976 
 977   // Updated location of intArrayKlassObj.
 978   static Klass* _updated_int_array_klass_obj;
 979 
 980   // Values computed at initialization and used by dead_wood_limiter().
 981   static double _dwl_mean;
 982   static double _dwl_std_dev;
 983   static double _dwl_first_term;
 984   static double _dwl_adjustment;
 985 #ifdef  ASSERT
 986   static bool   _dwl_initialized;
 987 #endif  // #ifdef ASSERT
 988 
 989 
 990  public:
 991   static ParallelOldTracer* gc_tracer() { return &_gc_tracer; }
 992 
 993  private:
 994 
 995   static void initialize_space_info();
 996 
 997   // Return true if details about individual phases should be printed.
 998   static inline bool print_phases();
 999 


1132   // Perform initialization for PSParallelCompact that requires
1133   // allocations.  This should be called during the VM initialization
1134   // at a pointer where it would be appropriate to return a JNI_ENOMEM
1135   // in the event of a failure.
1136   static bool initialize();
1137 
1138   // Closure accessors
1139   static PSParallelCompact::AdjustPointerClosure* adjust_pointer_closure() {
1140     return &_adjust_pointer_closure;
1141   }
1142   static KlassClosure* adjust_klass_closure()      { return (KlassClosure*)&_adjust_klass_closure; }
1143   static BoolObjectClosure* is_alive_closure()     { return (BoolObjectClosure*)&_is_alive_closure; }
1144 
1145   // Public accessors
1146   static elapsedTimer* accumulated_time() { return &_accumulated_time; }
1147   static unsigned int total_invocations() { return _total_invocations; }
1148   static CollectorCounters* counters()    { return _counters; }
1149 
1150   // Used to add tasks
1151   static GCTaskManager* const gc_task_manager();
1152   static Klass* updated_int_array_klass_obj() {
1153     return _updated_int_array_klass_obj;
1154   }
1155 
1156   // Marking support
1157   static inline bool mark_obj(oop obj);
1158   static inline bool is_marked(oop obj);
1159 
1160   template <class T> static inline void adjust_pointer(T* p);
1161 
1162   static void follow_class_loader(ParCompactionManager* cm,
1163                                   ClassLoaderData* klass);
1164 
1165   // Compaction support.
1166   // Return true if p is in the range [beg_addr, end_addr).
1167   static inline bool is_in(HeapWord* p, HeapWord* beg_addr, HeapWord* end_addr);
1168   static inline bool is_in(oop* p, HeapWord* beg_addr, HeapWord* end_addr);
1169 
1170   // Convenience wrappers for per-space data kept in _space_info.
1171   static inline MutableSpace*     space(SpaceId space_id);
1172   static inline HeapWord*         new_top(SpaceId space_id);
1173   static inline HeapWord*         dense_prefix(SpaceId space_id);
1174   static inline ObjectStartArray* start_array(SpaceId space_id);




 957 
 958  private:
 959   static STWGCTimer           _gc_timer;
 960   static ParallelOldTracer    _gc_tracer;
 961   static elapsedTimer         _accumulated_time;
 962   static unsigned int         _total_invocations;
 963   static unsigned int         _maximum_compaction_gc_num;
 964   static jlong                _time_of_last_gc;   // ms
 965   static CollectorCounters*   _counters;
 966   static ParMarkBitMap        _mark_bitmap;
 967   static ParallelCompactData  _summary_data;
 968   static IsAliveClosure       _is_alive_closure;
 969   static SpaceInfo            _space_info[last_space_id];
 970   static bool                 _print_phases;
 971   static AdjustPointerClosure _adjust_pointer_closure;
 972   static AdjustKlassClosure   _adjust_klass_closure;
 973 
 974   // Reference processing (used in ...follow_contents)
 975   static ReferenceProcessor*  _ref_processor;
 976 



 977   // Values computed at initialization and used by dead_wood_limiter().
 978   static double _dwl_mean;
 979   static double _dwl_std_dev;
 980   static double _dwl_first_term;
 981   static double _dwl_adjustment;
 982 #ifdef  ASSERT
 983   static bool   _dwl_initialized;
 984 #endif  // #ifdef ASSERT
 985 
 986 
 987  public:
 988   static ParallelOldTracer* gc_tracer() { return &_gc_tracer; }
 989 
 990  private:
 991 
 992   static void initialize_space_info();
 993 
 994   // Return true if details about individual phases should be printed.
 995   static inline bool print_phases();
 996 


1129   // Perform initialization for PSParallelCompact that requires
1130   // allocations.  This should be called during the VM initialization
1131   // at a pointer where it would be appropriate to return a JNI_ENOMEM
1132   // in the event of a failure.
1133   static bool initialize();
1134 
1135   // Closure accessors
1136   static PSParallelCompact::AdjustPointerClosure* adjust_pointer_closure() {
1137     return &_adjust_pointer_closure;
1138   }
1139   static KlassClosure* adjust_klass_closure()      { return (KlassClosure*)&_adjust_klass_closure; }
1140   static BoolObjectClosure* is_alive_closure()     { return (BoolObjectClosure*)&_is_alive_closure; }
1141 
1142   // Public accessors
1143   static elapsedTimer* accumulated_time() { return &_accumulated_time; }
1144   static unsigned int total_invocations() { return _total_invocations; }
1145   static CollectorCounters* counters()    { return _counters; }
1146 
1147   // Used to add tasks
1148   static GCTaskManager* const gc_task_manager();



1149 
1150   // Marking support
1151   static inline bool mark_obj(oop obj);
1152   static inline bool is_marked(oop obj);
1153 
1154   template <class T> static inline void adjust_pointer(T* p);
1155 
1156   static void follow_class_loader(ParCompactionManager* cm,
1157                                   ClassLoaderData* klass);
1158 
1159   // Compaction support.
1160   // Return true if p is in the range [beg_addr, end_addr).
1161   static inline bool is_in(HeapWord* p, HeapWord* beg_addr, HeapWord* end_addr);
1162   static inline bool is_in(oop* p, HeapWord* beg_addr, HeapWord* end_addr);
1163 
1164   // Convenience wrappers for per-space data kept in _space_info.
1165   static inline MutableSpace*     space(SpaceId space_id);
1166   static inline HeapWord*         new_top(SpaceId space_id);
1167   static inline HeapWord*         dense_prefix(SpaceId space_id);
1168   static inline ObjectStartArray* start_array(SpaceId space_id);


< prev index next >