242 243 // Save the tops of the spaces in all generations 244 void record_gen_tops_before_GC() PRODUCT_RETURN; 245 246 // Mangle the unused parts of all spaces in the heap 247 void gen_mangle_unused_area() PRODUCT_RETURN; 248 249 // Call these in sequential code around the processing of strong roots. 250 class ParStrongRootsScope : public MarkScope { 251 public: 252 ParStrongRootsScope(); 253 ~ParStrongRootsScope(); 254 }; 255 256 GCMemoryManager* old_gc_manager() const { return _old_manager; } 257 GCMemoryManager* young_gc_manager() const { return _young_manager; } 258 259 WorkGang& workers() { 260 return _workers; 261 } 262 }; 263 264 // Class that can be used to print information about the 265 // adaptive size policy at intervals specified by 266 // AdaptiveSizePolicyOutputInterval. Only print information 267 // if an adaptive size policy is in use. 268 class AdaptiveSizePolicyOutput : AllStatic { 269 static bool enabled() { 270 return UseParallelGC && 271 UseAdaptiveSizePolicy && 272 log_is_enabled(Debug, gc, ergo); 273 } 274 public: 275 static void print() { 276 if (enabled()) { 277 ParallelScavengeHeap::heap()->size_policy()->print(); 278 } 279 } 280 281 static void print(AdaptiveSizePolicy* size_policy, uint count) { | 242 243 // Save the tops of the spaces in all generations 244 void record_gen_tops_before_GC() PRODUCT_RETURN; 245 246 // Mangle the unused parts of all spaces in the heap 247 void gen_mangle_unused_area() PRODUCT_RETURN; 248 249 // Call these in sequential code around the processing of strong roots. 250 class ParStrongRootsScope : public MarkScope { 251 public: 252 ParStrongRootsScope(); 253 ~ParStrongRootsScope(); 254 }; 255 256 GCMemoryManager* old_gc_manager() const { return _old_manager; } 257 GCMemoryManager* young_gc_manager() const { return _young_manager; } 258 259 WorkGang& workers() { 260 return _workers; 261 } 262 263 // Runs the given AbstractGangTask with the current active workers. 264 virtual void run_task(AbstractGangTask* task); 265 }; 266 267 // Class that can be used to print information about the 268 // adaptive size policy at intervals specified by 269 // AdaptiveSizePolicyOutputInterval. Only print information 270 // if an adaptive size policy is in use. 271 class AdaptiveSizePolicyOutput : AllStatic { 272 static bool enabled() { 273 return UseParallelGC && 274 UseAdaptiveSizePolicy && 275 log_is_enabled(Debug, gc, ergo); 276 } 277 public: 278 static void print() { 279 if (enabled()) { 280 ParallelScavengeHeap::heap()->size_policy()->print(); 281 } 282 } 283 284 static void print(AdaptiveSizePolicy* size_policy, uint count) { |