¿Cómo reducir el uso de memoria de Eclipse?


81

El uso de memoria de Eclipse 3.4 está por las nubes hasta el punto en que se está convirtiendo en un problema.

Tengo un proyecto simple de BlackBerry cargado y el uso se dispara a casi 400 MB, a veces más. ¿Hay algo que se pueda hacer para derribarlo?


7
Mirando hacia atrás en esta pregunta ahora, debo decir que estaría encantado si pudiera reducir el uso de mi memoria de eclipse a 400 MB. En este momento estoy luchando por reducirlo a 1 GB (más otros 300 MB si incluye una copia de Tomcat para ejecutar mis proyectos ...).
Jules

5
Estoy escribiendo este comentario desde el futuro (2018) y Eclipse está tomando 10 GB en mi proyecto actual.
Benjamin Barrois

Acabo de regresar del año 2030 y Eclipse está ocupando 5 terabytes antes de cargar un proyecto.
AngryHacker

Respuestas:


84

Eclipse 3.4 puede consumir mucha más memoria que las versiones anteriores, cortesía del complemento del corrector ortográfico .

Puede desactivar el complemento yendo a Ventana -> Preferencias -> General -> Editores -> Editores de texto -> Ortografía, y desmarcando el título de la casilla 'Habilitar revisión ortográfica'.

Por supuesto, los consejos que se ofrecen para utilizar tamaños de pila más grandes y mejores recolectores de basura también le vendrán bien.


12
No funcionó para mí. Todavía en 900-930 MB. Quiero decir, ¿qué podría estar haciendo?
TheRealChx101

5
Gran respuesta. 1 plug-in, alrededor de 50 más de los que nunca he oído hablar / nunca uso. (Nota para

10
2016 y todavía enfrenta este problema. Me refiero a que 1 GB de mi espacio RAM está ocupado por eclipse. Desactivar el complemento del corrector ortográfico tampoco ayuda.
Lucky

12
2017 y mi Eclipse ahora usa 1.7GB de RAM casi sin complementos adicionales. Tiene que haber un fin a esta locura.
Tormenta

17

Marcar General -> Show heap statushabilitará esto

Barra de estado del montón de Eclipse

en la barra inferior. De esta manera, puede ejecutar manualmente el recolector de basura cuando lo desee haciendo clic en la papelera. No es una solución, más bien una solución alternativa, pero ayudó a reducir enormemente mi uso de RAM / CPU.


2
Esto me ayudó a identificar que los 4 GB de RAM asignados para eclipse, de hecho, no se estaban utilizando, a pesar de que el sistema operativo mostraba que se estaban utilizando 4 GB. Reduje la cantidad de RAM asignada a eclipse para ayudar a liberar RAM para otras aplicaciones.
Navigatron

1
Como Sping Tool Suit derivado de eclipse Así que esto también funciona con STS
Talib Hussain

9

En Eclipse Luna 4.4.1 Estaba tratando de reducir el uso de memoria en Eclipse. Me las arreglé para reducir la mía de 600 MB a 300 MB. Hice lo siguiente:

  • Apagué los complementos activados al inicio que no estaba usando. Windows> Preferencias> General> Inicio y apagado

  • Proyectos cerrados en los que no estaba trabajando en ese momento.

Encontré las sugerencias / consejos aquí: http://blog.elijaa.org/2010/09/20/tricks-to-speed-up-eclipse-php-helios-pdt-2-2/


8

Si bien es probable que pueda modificar la configuración, eliminar varios complementos, etc., es probable que sea más rentable comprar más memoria. ¿Cuánto tienes actualmente? Consideraría que una máquina de desarrollo con menos de 2 GB de memoria está por debajo de las especificaciones, y sospecho que mucha gente duplicaría eso ...


3
No podría estar más de acuerdo. 1GB de RAM cuesta tan solo $ 20-30. ¿Cuánto vale su tiempo? Conseguir que una colección de complementos funcione en Eclipse es un trabajo bastante duro sin tener que lidiar con él (posiblemente) innecesariamente.
cletus

2
Tengo un máximo de 2 GB (es una computadora portátil vieja). El problema es que una vez que se carga el simulador de BlackBerry, Visual Studio (servicios web) y Chrome (para buscar cosas en la web), la computadora portátil se detiene. Pero Eclipse es, con mucho, el mayor infractor. No fue tan malo con las versiones 3.3 o 3.2.
AngryHacker

2
Totalmente en desacuerdo. Las máquinas de desarrollo deben tener especificaciones más bajas que la máquina del usuario final en al menos un 50% (CPU y RAM) exactamente por esta razón.
finnw

4
@finnw: ¿Qué te hace pensar que la carga de trabajo de una máquina de desarrollo se parece en algo a la carga de trabajo de la máquina del usuario? Muchas aplicaciones no necesitan tantos recursos como un IDE. Sin duda, debería probar su aplicación en una máquina de baja especificación, pero eso no significa desarrollarla en una. De hecho, aparentemente ya está asumiendo una aplicación del lado del cliente. Si estoy desarrollando una aplicación web dirigida a dispositivos móviles, ¿debería desarrollarla también en un teléfono móvil?
Jon Skeet

2
@Nate: Esa fue la pregunta directa, pero muy a menudo en Stack Overflow es más útil mirar el problema que la pregunta . Si alguien está concatenando valores en SQL y olvidando algunas comillas, la respuesta directa a la pregunta sería agregar comillas, pero la solución al problema es SQL parametrizado. Si al OP le preocupan los 400 MB, me parece que la falta general de memoria para una máquina de desarrollo es el problema más amplio.
Jon Skeet

7

Las versiones modernas de Eclipse necesitan bastante RAM para hacer lo suyo. Pero debería funcionar bastante rápido en cualquier máquina moderna.

Suponiendo que tiene suficiente memoria física (2 GB está bien a menos que tenga muchos otros procesos en ejecución o esté usando RAD), consulte este artículo sobre el uso de la memoria de Eclipse para obtener algunos consejos sobre cómo modificar la configuración. Los dos culpables más comunes son que Xmx y / o MaxPermSize estén configurados demasiado bajos (Xmx por defecto es 256M y MaxPermSize por defecto es 64M).

Modifica los valores pasando argumentos de línea de comando o ajustando eclipse.ini en la ubicación de instalación de Eclipse.

Deberías terminar con algo como esto:

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

1
MaxPermSize ya no está allí
Ray Kim

6

Mi Eclipse está ocupando más de 800 MB residentes y 2 GB virtuales (quizás parte de él se haya cambiado). Java puede ser un cerdo, está dando mala prensa a Java todo el tiempo.

Sin embargo, hay algo que mucha gente no sabe: el recolector de basura incremental. -Xincgc El efecto secundario es que devuelve la memoria al sistema de vez en cuando. Por defecto, Java solo toma y toma, y ​​cuando ya no necesita memoria, la guarda para sí mismo. El incgc es una estrategia diferente en la que resulta más razonable suponer que la memoria se puede devolver al sistema sin tener problemas. Sin embargo, esto puede afectar el rendimiento.

Hay muchas configuraciones de recolección de basura. También puede hacer que varios subprocesos manejen GC. El GC paralelo hace eso. No estoy seguro si ese devuelve la memoria, no lo creo.


¿Y cómo cambiar la opción del recolector de basura para Eclipse?
Matthieu

3
Las cosas han cambiado. El GC predeterminado en Java 8 ahora es un recolector de basura generacional que también devuelve memoria al sistema. Ya no quieres burlarte de eso ...
Mike

1
En mi caso, Java 8 se complace en mantener más de 3 GB cuando el uso real es inferior a 0,5 GB, por lo que, desafortunadamente, necesito burlarme de él.
nsandersen

6

Eliminar la +UseG1GCopción de eclipse.ini. He leído desde aquí que solo se usa para una memoria de pila de 6GB.


3
Sí, esto funcionó para mí. Reemplacé -XX:+useG1GCcon -XX:+UseSerialGCy el problema de la memoria desapareció. Suena como un error en G1GC.
Don Smith

1
Cambiar para -XX:+UseSerialGCcortar> 300mb. pulgar hacia arriba
Aman

3

Si 400 Mb de RAM son un gran problema para usted, es posible que desee probar otro IDE. Eclipse almacena una gran cantidad de información de estado, parte o la mayoría de la cual en realidad no necesita. Esa es una elección de diseño.

En este momento, tengo el mismo proyecto abierto tanto en Eclipse como en QtCreator: después de una reconstrucción limpia, Eclipse usa 156 Mb de RAM, Qt Creator está contento con 66 Mb.


2

Puede probar la versión de 64 bits de Eclipse con la versión de 64 bits de JDK en Windows 7. Ambos causaron algunos problemas extraños con el Framework de terceros con el que tengo que trabajar. El JRockit de 32 bits (gratis ahora) de Oracle parece ser más rápido y un poco mejor en memoria. Esta es mi configuración de Eclipse.ini:

Esta es mi posada 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

Cambié al JRockit JDK de 32 bits que parece un poco más rápido para Eclipse. Apago y no instalo más de lo que necesito. Para cada tipo de desarrollo de aplicaciones (Android, J2EE, solo Spring, ...) tengo diferentes instalaciones de Eclipse. El espacio en el disco duro es barato. Entonces puedo tener solo los complementos que necesito para cada uno. Nunca querría que se cargaran todas las herramientas de Android si no las estuviera usando. STS también es bueno solo para las cosas de Spring y tengo uno solo para el trabajo de OpenShift Cloud.


Estoy un poco confundido, ya que primero tiene --launcher.XXMaxPermSize 512m y luego --launcher.XXMaxPermSize 256m (y un par de líneas duplicadas, es decir, defaultAction, y luego nosplash junto con showsplash). ¿Utiliza la primera configuración encontrada?
jambriz

no debería tener el segundo allí. Lo comprobé de nuevo y no tengo eso en mi actual. Además, si está utilizando JDK 8 parámetros diferentes
Tim Spann

1

Intente deshabilitar sus complementos de eclipse. Eclipse estaba acaparando la mitad de mi memoria cuando abrí el complemento saros.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.