Per programmare in java ho sempre utilizzato NetBeans: un bel prodotto, e contrariamente a molti altri sviluppatori che conosco lo preferisco a Eclipse.

Lo utilizzo su Windows, Linux e MacOSX: su quest’ultimo spesso il lavoro del ‘garbage collector’ provoca dei fastidiosi rallentamenti dell’interfaccia, rendendo spesso frustrante l’editing del codice.

Un modo per ovviare al problema è quello suggerito sul blog di Joshua Marinacci: aggiungere in pratica un’opzione allo script di avvio di NetBeans per forzare la VM a utilizzare una differente politica di garbage collection, nel nostro caso la Mark and Sweep.

In questo modo la VM utilizza una GC incrementale , che invece di attendere che la GC raggiunga una certa dimensione per ‘fare pulizie’ se ne occupa a intervalli ravvicinati e con dimensioni minori: questo comporta una ‘distribuzione’ del lavoro del garbage collector e quindi un aumento delle prestazioni percepibili.

La modifica è semplice: dalla finestra di terminale portarsi nella cartella della applicazioni (Applications/) e da qui in NetBeans.app/Contents/MacOS.

Editare con vi il file netbeans e sostituire questa parte

case “uname” in Darwin*) launchNbexec
–jdkhome “$netbeans_jdkhome”
-J-XX:+UseConcMarkSweepGC
-J-Dcom.apple.mrj.application.apple.menu.about.name=NetBeans
-J-Xdock:name=NetBeans
“-J-Xdock:icon=$progdir/../nb5.5/netbeans.icns”
–branding nb
–clusters “$netbeans_clusters”
-J-Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade
-J-Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense
${netbeans_default_options}
“$@” ;;

a questa

case “uname” in Darwin*) launchNbexec
–jdkhome “$netbeans_jdkhome”
-J-Dcom.apple.mrj.application.apple.menu.about.name=NetBeans
-J-Xdock:name=NetBeans
“-J-Xdock:icon=$progdir/../nb5.5/netbeans.icns”
–branding nb
–clusters “$netbeans_clusters”
-J-Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade
-J-Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense
${netbeans_default_options}
“$@” ;;

(Va aggiunto in pratica lo switch -J-XX:+UseConcMarkSweepGC )

Salvare e chiudere il file e avviare NetBeans: niente più ‘addormentamenti’ dell’IDE!

N.B. Ho testato la procedura su NB 5.5: è probabile che per altre versioni lo script di avvio sia leggermente diverso: in ogni caso, lo switch da aggiungere è sempre lo stesso.