3176 // space per-gc-thread buffers. The default is 4kw. 3177 FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K); // Note: this is in words 3178 3179 // OldPLABSize is the size of the buffers in the old gen that 3180 // UseParallelGC uses to promote live data that doesn't fit in the 3181 // survivor spaces. At any given time, there's one for each gc thread. 3182 // The default size is 1kw. These buffers are rarely used, since the 3183 // survivor spaces are usually big enough. For specjbb, however, there 3184 // are occasions when there's lots of live data in the young gen 3185 // and we end up promoting some of it. We don't have a definite 3186 // explanation for why bumping OldPLABSize helps, but the theory 3187 // is that a bigger PLAB results in retaining something like the 3188 // original allocation order after promotion, which improves mutator 3189 // locality. A minor effect may be that larger PLABs reduce the 3190 // number of PLAB allocation events during gc. The value of 8kw 3191 // was arrived at by experimenting with specjbb. 3192 FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K); // Note: this is in words 3193 3194 // Enable parallel GC and adaptive generation sizing 3195 FLAG_SET_CMDLINE(bool, UseParallelGC, true); 3196 FLAG_SET_DEFAULT(ParallelGCThreads, 3197 Abstract_VM_Version::parallel_worker_threads()); 3198 3199 // Encourage steady state memory management 3200 FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100); 3201 3202 // This appears to improve mutator locality 3203 FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false); 3204 3205 // Get around early Solaris scheduling bug 3206 // (affinity vs other jobs on system) 3207 // but disallow DR and offlining (5008695). 3208 FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true); 3209 3210 } else if (match_option(option, "-XX:+NeverTenure", &tail)) { 3211 // The last option must always win. 3212 FLAG_SET_CMDLINE(bool, AlwaysTenure, false); 3213 FLAG_SET_CMDLINE(bool, NeverTenure, true); 3214 } else if (match_option(option, "-XX:+AlwaysTenure", &tail)) { 3215 // The last option must always win. 3216 FLAG_SET_CMDLINE(bool, NeverTenure, false); 3217 FLAG_SET_CMDLINE(bool, AlwaysTenure, true); | 3176 // space per-gc-thread buffers. The default is 4kw. 3177 FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K); // Note: this is in words 3178 3179 // OldPLABSize is the size of the buffers in the old gen that 3180 // UseParallelGC uses to promote live data that doesn't fit in the 3181 // survivor spaces. At any given time, there's one for each gc thread. 3182 // The default size is 1kw. These buffers are rarely used, since the 3183 // survivor spaces are usually big enough. For specjbb, however, there 3184 // are occasions when there's lots of live data in the young gen 3185 // and we end up promoting some of it. We don't have a definite 3186 // explanation for why bumping OldPLABSize helps, but the theory 3187 // is that a bigger PLAB results in retaining something like the 3188 // original allocation order after promotion, which improves mutator 3189 // locality. A minor effect may be that larger PLABs reduce the 3190 // number of PLAB allocation events during gc. The value of 8kw 3191 // was arrived at by experimenting with specjbb. 3192 FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K); // Note: this is in words 3193 3194 // Enable parallel GC and adaptive generation sizing 3195 FLAG_SET_CMDLINE(bool, UseParallelGC, true); 3196 3197 // Encourage steady state memory management 3198 FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100); 3199 3200 // This appears to improve mutator locality 3201 FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false); 3202 3203 // Get around early Solaris scheduling bug 3204 // (affinity vs other jobs on system) 3205 // but disallow DR and offlining (5008695). 3206 FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true); 3207 3208 } else if (match_option(option, "-XX:+NeverTenure", &tail)) { 3209 // The last option must always win. 3210 FLAG_SET_CMDLINE(bool, AlwaysTenure, false); 3211 FLAG_SET_CMDLINE(bool, NeverTenure, true); 3212 } else if (match_option(option, "-XX:+AlwaysTenure", &tail)) { 3213 // The last option must always win. 3214 FLAG_SET_CMDLINE(bool, NeverTenure, false); 3215 FLAG_SET_CMDLINE(bool, AlwaysTenure, true); |