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