IDE – Netbeans – JVM Performance Tuning – Config Settings
I’ve recently switched from Zend 5.5 to Netbeans (v7.0) . I’ve tried Eclipse, Eclipse PDT, and Zend Studio 8, but didn’t care much for any of them. Netbeans is tolerable, so I decided to focus on it as my main IDE, as such I had to research some JVM performance tuning because it was dog slow by default.
The default config looks like:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=384m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true"
Our goal is to increase the min and max memory limits so we can handle larger code bases. The flags you want to add (manually):
Min Heapsize (2GB): -J-Xms2048m Max Heapsize (4GB): -J-Xmx4096M
Also, as noted in the config file, enable the following flags:
-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled
So your final config should look like:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=384m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Xms2048m -J-Xmx4096m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled"
IBM explanation of some of the min/max settings: http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/tprf_tunejvm.html
Also, if you have symlinks to deeper libraries, be sure to add the paths to said libraries to the ‘Ignored Folders’ under project properties, this will help reduce un-necessary scanning.
There are a few more flags you should consider adding for your netbeans config. There is a new Garbage Collector as of 7.1 which really improved the performance of my netbeans install. You can read more @ Netbeans JVM Tuning. I appended the following flags at the end of my `netbeans_default_options` string (note: remove -J-XX:+UseConcMarkSweepGC because it will be replaced with UseParallelGC):
-J-Xverify:none -J-XX:+UseAdaptiveSizePolicy -J-XX:+UseParallelGC -J-Djava.net.preferIPv4Stack=true
- General – Still moving melikedev.com to VPS
- General – Moving melikedev.com to VPS
- General – Update
- General – Introducing MeLikeDrinks.com
- General – Been awhile
- IDE – Netbeans – Restore ‘Refresh Folder’ Option from Right Click Menu
- General – Yay! – Broke 600K requests for January 2012
- General – WordPress and Plugins Updated
- General – Merry Christmas – 2011
- General – Internationalization (i18n) and Localization (l10n) Abbreviations