src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File aggressive_heap Sdiff src/share/vm/runtime

src/share/vm/runtime/arguments.cpp

Print this page




2506       // See the OldPLABSize comment below, but replace 'after promotion'
2507       // with 'after copying'.  YoungPLABSize is the size of the survivor
2508       // space per-gc-thread buffers.  The default is 4kw.
2509       FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K);      // Note: this is in words
2510 
2511       // OldPLABSize is the size of the buffers in the old gen that
2512       // UseParallelGC uses to promote live data that doesn't fit in the
2513       // survivor spaces.  At any given time, there's one for each gc thread.
2514       // The default size is 1kw. These buffers are rarely used, since the
2515       // survivor spaces are usually big enough.  For specjbb, however, there
2516       // are occasions when there's lots of live data in the young gen
2517       // and we end up promoting some of it.  We don't have a definite
2518       // explanation for why bumping OldPLABSize helps, but the theory
2519       // is that a bigger PLAB results in retaining something like the
2520       // original allocation order after promotion, which improves mutator
2521       // locality.  A minor effect may be that larger PLABs reduce the
2522       // number of PLAB allocation events during gc.  The value of 8kw
2523       // was arrived at by experimenting with specjbb.
2524       FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K);  // Note: this is in words
2525 
2526       // CompilationPolicyChoice=0 causes the server compiler to adopt
2527       // a more conservative which-method-do-I-compile policy when one
2528       // of the counters maintained by the interpreter trips.  The
2529       // result is reduced startup time and improved specjbb and
2530       // alacrity performance.  Zero is the default, but we set it
2531       // explicitly here in case the default changes.
2532       // See runtime/compilationPolicy.*.
2533       FLAG_SET_CMDLINE(intx, CompilationPolicyChoice, 0);
2534 
2535       // Enable parallel GC and adaptive generation sizing
2536       FLAG_SET_CMDLINE(bool, UseParallelGC, true);
2537       FLAG_SET_DEFAULT(ParallelGCThreads,
2538                        Abstract_VM_Version::parallel_worker_threads());
2539 
2540       // Encourage steady state memory management
2541       FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
2542 
2543       // This appears to improve mutator locality
2544       FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
2545 
2546       // Get around early Solaris scheduling bug
2547       // (affinity vs other jobs on system)
2548       // but disallow DR and offlining (5008695).
2549       FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
2550 
2551     } else if (match_option(option, "-XX:+NeverTenure", &tail)) {
2552       // The last option must always win.
2553       FLAG_SET_CMDLINE(bool, AlwaysTenure, false);
2554       FLAG_SET_CMDLINE(bool, NeverTenure, true);




2506       // See the OldPLABSize comment below, but replace 'after promotion'
2507       // with 'after copying'.  YoungPLABSize is the size of the survivor
2508       // space per-gc-thread buffers.  The default is 4kw.
2509       FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K);      // Note: this is in words
2510 
2511       // OldPLABSize is the size of the buffers in the old gen that
2512       // UseParallelGC uses to promote live data that doesn't fit in the
2513       // survivor spaces.  At any given time, there's one for each gc thread.
2514       // The default size is 1kw. These buffers are rarely used, since the
2515       // survivor spaces are usually big enough.  For specjbb, however, there
2516       // are occasions when there's lots of live data in the young gen
2517       // and we end up promoting some of it.  We don't have a definite
2518       // explanation for why bumping OldPLABSize helps, but the theory
2519       // is that a bigger PLAB results in retaining something like the
2520       // original allocation order after promotion, which improves mutator
2521       // locality.  A minor effect may be that larger PLABs reduce the
2522       // number of PLAB allocation events during gc.  The value of 8kw
2523       // was arrived at by experimenting with specjbb.
2524       FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K);  // Note: this is in words
2525 









2526       // Enable parallel GC and adaptive generation sizing
2527       FLAG_SET_CMDLINE(bool, UseParallelGC, true);
2528       FLAG_SET_DEFAULT(ParallelGCThreads,
2529                        Abstract_VM_Version::parallel_worker_threads());
2530 
2531       // Encourage steady state memory management
2532       FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
2533 
2534       // This appears to improve mutator locality
2535       FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
2536 
2537       // Get around early Solaris scheduling bug
2538       // (affinity vs other jobs on system)
2539       // but disallow DR and offlining (5008695).
2540       FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
2541 
2542     } else if (match_option(option, "-XX:+NeverTenure", &tail)) {
2543       // The last option must always win.
2544       FLAG_SET_CMDLINE(bool, AlwaysTenure, false);
2545       FLAG_SET_CMDLINE(bool, NeverTenure, true);


src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File