Hi, All.
I benchmarked VM options for Idea. Let me share my results.
Test: Startup + open big project > 100k classes
Environment: WinXp, jre 1.6.26, Xeon 2Gh
Tested VM options:
- Default (-Xms128m -Xmx512m)
- Default "enhanced" -Xms768m -Xmx768m
- UseParallelOldGC
- UseParNewGC
- UseConcMarkSweepGC UseParNewGC
- UseConcMarkSweepGC UseParNewGC NewSize=128m
All Parallel GCs share common part -Xms768m -Xmx768m -server -XX:ParallelGCThreads=8 (8 because of cpu cores)
Results:
Time to start + open project:
1) Default => 36 secs2) Default+Xms768m => 37 seconds
3) Any parallel config ~24 seconds
GC charts (less is better for all):
Note: ParNewGc and default show good min results because of low newSize on startup~40m, which is grows with time, so shouldn't be considered valid.
Numbers are better than comments:
Conclusion and advices:
1) shipped settings are worst of all and should be refused for multicore processors.
2) Setting just large Xmx brings even larger pauses to application with small overhead win, so makes impacts responsivness.
3) The best suited GC is CMS. Taking into account it could shorten major GC pauses, i suggest to use these settings (ParallelGCThreads depends on CPU):
-Xmx768m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-server
-XX:NewSize=128m
-XX:+UseParNewGC
-XX:ParallelGCThreads=8
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=60
Any questions and suggestions ae very welcome. GC logs could be found in attachement.
regards, Alex