Ho sempre trovato Netbeans IDE molto più veloce e reattivo di Eclipse. Per rendere Eclipse più veloce, ho pensato di applicare le impostazioni della JVM con le quali Netbeans viene lanciato e applicarle ad Eclipse. Ho ottenuto dei risultati molto buoni: in generale Eclipse ora è molto più veloce e scattante.
Vediamo ora come configurare Eclipse per implementare la modifica dei parametri della JVM:
Cercate il file eclipse.ini. La sua posizione dipende dal vostro sistema operativo e da dove avete installato Eclipse. Su Windows, ad esempio, si trova nella stessa cartella di Eclipse (hint:
C:\eclipseoC:\Programmi\Eclipse); su Linux, date un’occhiata a/opt/eclipse(di solito è la directory più indicata per installarlo).Una volta trovato il file
eclipse.ini, apritelo con un editor di testo e aggiungete in fondo al file queste impostazioni di configurazione (copia/incolla; il segno-deve essere incluso):-Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m -Xverify:none -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabledSalvate e chiudete il file. Fine!
Per i più curiosi, vediamo di spiegare cosa rappresentano le opzioni di configurazione che abbiamo specificato:
- le prime quattro opzioni permettono di specificare la dimensione massima di memoria che Eclipse può utilizzare
- la quinta opzione specifica alla JVM di non verificare il bytecode generato
- per le ultime tre opzioni, vi rimando ai Netbeans performance tuning tips; in generale le tre opzioni servono per fare il tuning del Garbage Collector della JVM.
Ci possono essere altre opzioni “utili” che potrebbero incrementare la velocità di Eclipse. È d’obbligo specificare, però, che le prestazioni ottenute potrebbero variare da computer a computer, in relazione a molteplici fattori, quali sistema operativo, versione della JVM, versione di Eclipse, ecc. Come si dice in gergo, YMMV.
Comunque, quello che io ho ottenuto è un aumento considerevole della velocità e della reattività di Eclipse, e difficilmente tornerò alle impostazioni predefinite.