Come ridurre l’utilizzo della memoria di Eclipse?

L’utilizzo della memoria di Eclipse 3.4 passa attraverso il tetto fino al punto in cui sta diventando un problema.

Ho caricato un semplice progetto BlackBerry e l’utilizzo sale a quasi 400 MB, a volte più alto. C’è qualcosa che può essere fatto per abbatterlo?

Eclipse 3.4 può consumare molta più memoria rispetto alle versioni precedenti, per gentile concessione del plug-in di controllo ortografico .

Puoi spegnere il plug-in andando su Finestra -> Preferenze -> Generale -> Editor -> Editor di testo -> Ortografia e deselezionando il titolo della casella ‘Abilita controllo ortografico’.

Naturalmente, i suggerimenti offerti per utilizzare dimensioni di heap più grandi e migliori raccoglitori di immondizie ti farebbero bene anche tu.

Mentre probabilmente potresti armeggiare con la configurazione, rimuovere vari plugin ecc., È probabile che sia più economico comprare più memoria. Quanto hai attualmente? Prenderò in considerazione una macchina per sviluppatori con meno di 2 GB di memoria per essere sotto specifica, e ho il sospetto che molte persone potrebbero raddoppiare che …

Controllo General -> Show heap status abiliterà questo

Barra di stato dell'heap di Eclipse

nella barra in basso. In questo modo puoi eseguire manualmente il garbage collector ogni volta che vuoi facendo clic sul cestino. Non è una correzione, è più simile a una soluzione alternativa, ma ha contribuito a ridurre in modo massiccio l’utilizzo della mia RAM / CPU.

My Eclipse sta prendendo più di 800 MB residenti e 2 GB virtuali (una parte di essi è forse sostituita). Java può essere un maiale, sta dando a Java ctriggers stampa tutto il tempo.

Tuttavia, c’è un piccolo qualcosa che molte persone non sanno: il garbage collector incrementale. -Xincgc L’effetto collaterale è che restituisce la memoria al sistema di volta in volta. Di default Java prende e prende, e quando non ha più bisogno di memoria, lo tiene per sé. L’incgc è una strategia diversa in cui diventa più ragionevole presumere che la memoria possa essere restituita al sistema senza incorrere in problemi. Ciò può tuttavia influire sulle prestazioni.

Ci sono molte impostazioni di garbage collection. Puoi anche fare in modo che più thread gestiscano GC. Il GC parallelo lo fa. Non sono sicuro se quello restituisce la memoria, non la penso così.

Le versioni moderne di Eclipse hanno bisogno di un bel po ‘di RAM per fare le loro cose. Ma dovrebbe comunque funzionare abbastanza velocemente su qualsiasi macchina moderna.

Supponendo che tu abbia abbastanza memoria fisica (2 GB vanno bene a meno che tu non abbia molti altri processi in esecuzione o tu stia utilizzando RAD), consulta questo articolo sull’uso della memoria di Eclipse per alcuni suggerimenti su come modificare le impostazioni. I due colpevoli più comuni sono Xmx e / o MaxPermSize impostati troppo bassi (Xmx imposta su 256M e MaxPermSize valori predefiniti su 64M).

Si modificano i valori passando gli argomenti della riga di comando o modificando l’eclipse.ini nel percorso di installazione di Eclipse.

Dovresti finire con qualcosa del genere:

 ... -vmargs -Xms128m -Xmx1024m -XX:MaxPermSize=128m 

In Eclipse Luna 4.4.1 Stavo cercando di ridurre l’utilizzo della memoria in Eclipse. Sono riuscito a radere il mio da 600mb a 300mb. Ho fatto quanto segue:

  • Spento i plugin triggersti ​​all’avvio che non stavo usando. Windows> Preferenze> Generali> Avvio e spegnimento

  • Progetti chiusi a cui non stavo lavorando in quel momento.

Ho trovato i suggerimenti / consigli qui: http://blog.elijaa.org/2010/09/20/tricks-to-speed-up-eclipse-php-helios-pdt-2-2/

Se 400 Mb di RAM sono un grosso problema per te, potresti provare un altro IDE. Eclipse memorizza molte informazioni di stato, alcune o molte delle quali non sono effettivamente necessarie. Questa è una scelta di design.

In questo momento, ho lo stesso progetto aperto sia in Eclipse che in QtCreator: dopo una ricostruzione pulita, Eclipse utilizza 156 Mb di RAM, Qt Creator è felice con 66 Mb.

Puoi provare la versione a 64 bit di Eclipse con la versione a 64 bit di JDK su Windows 7. Entrambi hanno causato alcuni problemi con il Framework di terze parti con cui devo lavorare. Il 32 bit di JRockit (gratuito ora) di Oracle sembra essere più veloce e avere un po ‘di meglio sulla memoria. Queste sono le mie impostazioni di Eclipse.ini:

Questa è la mia locanda di eclipse

 -startup plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222 -nosplash org.eclipse.platform --launcher.XXPermSize 512m --launcher.XXMaxPermSize 512m --launcher.defaultAction openFile -vm C:/Program Files (x86)/Java/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/bin -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vmargs -Xquickstart -XX:+AggressiveHeap -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:ThreadPriorityPolicy=1 -Xverify:none -Xms1100m -Xmx1100m 

Sono passato al JRockit JDK a 32 bit che sembra un po ‘più veloce per Eclipse. Spengo e non installo più del necessario. Per ogni tipo separato di sviluppo di app (Android, J2EE, solo Spring, …) ho diverse installazioni di Eclipse. Lo spazio sul disco rigido è economico. Quindi posso avere solo i plugin di cui ho bisogno per ognuno. Non vorrei mai caricare tutti gli strumenti Android se non li stavo usando. STS è anche buono per le cose di Spring e ne ho uno solo per OpenShift Cloud.

Rimuovi +UseG1GC opzione UseG1GC da eclipse.ini. Ho letto da qui che è usato solo per la memoria heap araound da 6 GB.