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