src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/runtime/arguments.cpp	Tue Feb  4 16:00:32 2014
--- new/src/share/vm/runtime/arguments.cpp	Tue Feb  4 16:00:31 2014

*** 1126,1135 **** --- 1126,1144 ---- } if (CompilationPolicyChoice < 2) { vm_exit_during_initialization( "Incompatible compilation policy selected", NULL); } + if (FLAG_IS_DEFAULT(CodeCacheSegmentSize) && FLAG_IS_DEFAULT(ReservedCodeCacheSize)) { + // There is enough code cache available. Increasing CodeCacheSegmentSize results + // in less memory fragmentation (and therefore a shorter freelist in the code heap.) + // Testing shows a reduction of the freelist length by several factors compared to + // using the default CodeCacheSegmentSize. A larger CodeCacheSegmentSize increases + // the memory consumption (due to possibly unused memory at the end of an nmethod) + // by a couple of percent only. + FLAG_SET_DEFAULT(CodeCacheSegmentSize, CodeCacheSegmentSize * 2); + } // Increase the code cache size - tiered compiles a lot more. if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) { FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 5); } if (!UseInterpreter) { // -Xcomp
*** 2340,2349 **** --- 2349,2360 ---- status = false; } status &= verify_interval(NmethodSweepFraction, 1, ReservedCodeCacheSize/K, "NmethodSweepFraction"); status &= verify_interval(NmethodSweepActivity, 0, 2000, "NmethodSweepActivity"); + status &= verify_interval(CodeCacheMinBlockLength, 1, 100, "CodeCacheMinBlockLength"); + status &= verify_interval(CodeCacheSegmentSize, 1, 1024, "CodeCacheSegmentSize"); return status; } bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore,

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