6 Replies Last post: Dec 26, 2011 6:29 PM by Alexander Ashitkin  
Alexander Ashitkin Novice 223 posts since
Sep 25, 2009
Currently Being Moderated

Dec 20, 2011 11:13 PM

Intellij Idea JVM options benchmark: defalut settings are worst

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:

 

  1. Default (-Xms128m -Xmx512m)
  2. Default "enhanced" -Xms768m -Xmx768m
  3. UseParallelOldGC
  4. UseParNewGC
  5. UseConcMarkSweepGC UseParNewGC
  6. 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 secs

 

2)       Default+Xms768m => 37 seconds

 

3)       Any parallel config ~24 seconds

 

GC charts (less is better for all):

overhead.png

Max.png

Min.png

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.

 

stats.PNG

Numbers are better than comments:

stats-compare.PNG

 

 

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 and impacts responsivness.

3) roughly, 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):

-Xms768m

-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

Attachments:
Denis Zhdanov Expert 1,620 posts since
Oct 20, 2007
Currently Being Moderated
Dec 21, 2011 11:59 AM in response to: Alexander Ashitkin
Re: Intellij Idea JVM options benchmark: defalut settings are worst

Hi Alexander,

 

Let me thank you for spotting the problem place and your effort in analysis. We should definitely look into that.

 

I've created corresponding ticket - IDEA-79172, expecting to close it for 11.1 release (2012 Q1/2).

 

Regards, Denis

Maxim Mossienko JetBrains 1,529 posts since
Sep 5, 2002
Currently Being Moderated
Dec 23, 2011 8:03 PM in response to: Alexander Ashitkin
Re: Intellij Idea JVM options benchmark: defalut settings are worst

Attached idea-gc-test.zip contains the data collected from unspecified IntelliJ Idea version, surely not IntelliJ IDEA 11 since the file is the same as the one you attached couple of monthes ago.

Also is not clear what plugins are enabled and whether your tests cater for cold (just after restart) and warm file system state.

E.g. I have 11s of startup / opening project with default gc / client VM settings for IDEA project and 13s of startup / opening project with your settings in warm file system state (I opened project three times) and

no other CPU activity on the system

 

Message was edited by: Maxim Mossienko

Maxim Mossienko JetBrains 1,529 posts since
Sep 5, 2002
Currently Being Moderated
Dec 23, 2011 11:23 PM in response to: Alexander Ashitkin
Re: Intellij Idea JVM options benchmark: defalut settings are worst

Is not clear what plugins are enabled in your configuration and whether your tests  cater for cold (just after restart) and warm file system state.

E.g.  I have 11s of startup / opening project with default gc / client VM  settings for IDEA project and 13s of startup / opening project with your  settings in warm file system state (I opened project three times) and

no other CPU activity on the system.

More Like This

  • Retrieving data ...