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) {
|