Thursday, December 23, 2010

Netbeans performance isues surfaced again

Last week, after I upgraded to the Netbeans 7.0 Beta, scanning issues, coupled with spontaneous freezes, cropped up again. I initially thought I was running into the same heap size issue as described in one of my earlier posts. After some research, it turns out the issue was related to garbage collection this time.

http://performance.netbeans.org/howto/jvmswitches/index.html
http://wiki.netbeans.org/FaqScanningAndIndexingPerformanceHints#Use_different_Garbage_Collector_strategy

We've had several reports from users that choosing 'Concurrent Mark And Sweep' garbage collector improves scanning performance. This may or may not make a difference on your system. The problem is that people use different hardware, different versions of JDK and they have different default GC algorithm chosen by their JVM.

I added the required flags to my netbeans.conf file and performance improved to a point where it is now much better than it was previously.

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Xmx3096m -J-XX:PermSize=32m -J-XX:MaxPermSize=1024m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled" 

My current configuration:

Intel(R) Xeon(R) Quad Core CPU @ 2.80GHz 
6G Memory
Multiple PHP projects containing a total of ~110,000 files.

java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6) (fedora-23.b16.fc10-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)