¿Cuáles son las mejores configuraciones de JVM para Eclipse? [cerrado]

315

¿Cuáles son las mejores configuraciones de JVM que ha encontrado para ejecutar Eclipse?

Craig Angus
fuente
8
Las eclipse.iniconfiguraciones nuevas y mejoradas para Helios 3.6 están aquí (a continuación, en una nueva respuesta): stackoverflow.com/questions/142357/…
VonC
66
Es sorprendente que la pregunta cerrada que no constructiva tiene una clasificación tan alta ...
Bancer
1
Esta pregunta se hizo cuando la respuesta más reciente a una pregunta como esta en 2008 fue eclipsezone.com/eclipse/forums/t20732.html . El conjunto de respuestas ha crecido porque se han lanzado nuevas versiones de eclipse y java, las actualizaciones posteriores han mantenido las respuestas frescas. Al cerrar la pregunta, las respuestas se volverán obsoletas. La única manera que puedo pensar para reformular esta pregunta sería para que sea la versión específica, que creo que es peor, ya que causaría múltiples preguntas de respuesta básicamente el mismo problema
Craig Angus
10
De acuerdo, cerrar preguntas como esta es una locura, una locura que te digo, ¡preguntas como esta son las más útiles e interesantes del sitio!
Luigi Plinge
3
Según el motivo del cierre, "Esperamos que las respuestas generalmente involucren hechos, referencias o experiencia específica". Creo que cerrar esta pregunta es una exageración. Tengamos cuidado al usar los poderes de censura. Yo diría que en caso de duda, es mejor "dejar que el conocimiento sea libre" y abierto.
luiscolorado

Respuestas:

315

Es esa época del año otra vez: "eclipse.ini take 3" ¡la configuración devuelve el golpe!

Eclipse Helios 3.6 y 3.6.x configuraciones

texto alternativo http://www.eclipse.org/home/promotions/friends-helios/helios.png

Después de la configuración de Eclipse Ganymede 3.4.x y 3.5.x Eclipse Galileo , aquí está una mirada en profundidad en una "optimizado" eclipse.ini archivo de configuración para Eclipse Helios 3.6.x:

( por "optimizado", quiero decir que puedo ejecutar un Eclipse completo en nuestra estación de trabajo en el trabajo, algunos viejos P4 de 2002 con 2Go RAM y XPSp3. Pero también he probado esas mismas configuraciones en Windows7 )

Eclipse.ini

texto alternativo

ADVERTENCIA : para plataformas que no sean de Windows, use la opción de propiedad de Sun en -XX:MaxPermSizelugar de la opción de propiedad de Eclipse --launcher.XXMaxPermSize.
Es decir: a menos que esté utilizando la última versión 7 de jdk6u21 . Vea la sección de Oracle a continuación.

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons

Nota:
Adapte el p2.reconciler.dropins.directorya un directorio externo de su elección.
Ver esta respuesta SO . La idea es poder colocar nuevos complementos en un directorio independientemente de cualquier instalación de Eclipse.

Las siguientes secciones detallan lo que hay en este eclipse.iniarchivo.


El temido Oracle JVM 1.6u21 (precompilación 7) y Eclipse se bloquean

Andrew Niefer me alertó sobre esta situación y escribió una publicación de blog sobre un argumento vm no estándar ( -XX:MaxPermSize) y puede hacer que los vms de otros proveedores no se inicien en absoluto.
Pero la versión eclipse de esa opción ( --launcher.XXMaxPermSize) no funciona con el nuevo JDK (6u21, a menos que esté utilizando la compilación 7 7u de 6u21, ver más abajo).

los finalla solución está en Eclipse Wiki , y solo para Helios en Windows con 6u21 pre build 7 :

(eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

Eso es. No hay ajustes para ajustar aquí (de nuevo, solo para Helios en Windows con una versión 6u21 pre build 7 ).
Para la plataforma que no sea Windows, necesita volver a la opción pertenece a Sun -XX:MaxPermSize.

El problema se basa en una regresión: la identificación de JVM falla debido al cambio de marca de Oracle en java.exe y desencadenó el error 319514 en Eclipse.
Andrew se encargó del Bug 320005: [lanzador] --launcher.XXMaxPermSize: isSunVMdebería ser verdadero para Oracle , pero eso será solo para Helios 3.6.1.
Francis Upton , otro usuario de Eclipse, reflexiona sobre la situación general .

Actualización u21b7, 27 de julio :
Oracle ha retrocedido el cambio para la próxima versión de Java 6 y no lo implementará nuevamente hasta JDK 7 .
Si usa jdk6u21 build 7 , puede volver a la --launcher.XXMaxPermSize(opción eclipse) en lugar de -XX:MaxPermSize(la opción no estándar).
La detección automáticaeclipse.exeSun Microsystems que se produce en la cuña del iniciador C seguirá buscando la cadena " ", pero con 6u21b7, ahora funcionará nuevamente.

Por ahora, todavía mantengo la -XX:MaxPermSizeversión (porque no tengo idea de cuándo todos lanzarán eclipse el JDK correcto ).


Implícita `-startup` y` --launcher.library`

Contrariamente a la configuración anterior, la ruta exacta para esos módulos ya no está configurada, lo cual es conveniente ya que puede variar entre diferentes versiones de Eclipse 3.6.x:

  • inicio: si no se especifica, el ejecutable buscará en el directorio de complementos el org.eclipse.equinox.launcherpaquete con la versión más alta.
  • launcher.library: si no se especifica, el ejecutable busca en el pluginsdirectorio el org.eclipse.equinox.launcher.[platform]fragmento apropiado con la versión más alta y usa la biblioteca compartida nombrada eclipse_*en su interior.

Utilice JDK6

El JDK6 ahora se requiere explícitamente para lanzar Eclipse:

-Dosgi.requiredJavaVersion = 1.6

Esta pregunta SO informa una incidencia positiva para el desarrollo en Mac OS.


+ DesbloquearVMOptions experimentales

Las siguientes opciones son parte de algunas de las opciones experimentales de Sun JVM.

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

Se ha informado en esta publicación de blog para acelerar potencialmente Eclipse.
Vea todas las opciones de JVM aquí y también en la página oficial de opciones de Java Hotspot .
Nota: la lista detallada de esos informes de opciones que UseFastAccessorMethodspueden estar activos por defecto.

Consulte también "Actualice su JVM" :

Como recordatorio, G1 es el nuevo recolector de basura en preparación para el JDK 7, pero ya se usa en la versión 6 de u17.


Abrir archivos en Eclipse desde la línea de comando

Vea la publicación de blog de Andrew Niefer informando esta nueva opción:

--launcher.defaultAction
openFile

Esto le dice al lanzador que si se llama con una línea de comando que solo contiene argumentos que no comienzan con " -", entonces esos argumentos deben tratarse como si siguieran " --launcher.openFile".

eclipse myFile.txt

Este es el tipo de línea de comando que recibirá el iniciador en Windows cuando haga doble clic en un archivo asociado con eclipse, o seleccione archivos y elija " Open With" o " Send To" Eclipse.

Las rutas relativas se resolverán primero con el directorio de trabajo actual y segundo con el directorio del programa eclipse.

Vea el error 301033 para referencia. Originalmente error 4922 (octubre de 2001, corregido 9 años después).


p2 y la solicitud de diálogo sin firmar

Si está cansado de este cuadro de diálogo durante la instalación de sus muchos complementos:

texto alternativo

, agregue su eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

Vea esta publicación de blog de Chris Aniszczy y el informe de error 235526 .

Quiero decir que la investigación de seguridad respalda el hecho de que menos indicaciones son mejores.
Las personas ignoran las cosas que aparecen en el flujo de algo que quieren hacer.

Para 3.6, no debemos mostrar advertencias en el medio del flujo; no importa cuánto simplifiquemos, las personas simplemente las ignorarán.
En cambio, deberíamos recopilar todos los problemas, no instalar esos paquetes con problemas y, en su lugar, llevar al usuario a un punto en el flujo de trabajo donde pueda solucionarlo: agregue confianza, configure la política de seguridad de manera más flexible, etc. Esto se llama 'seguro puesta en escena ' .

---------- http://www.eclipse.org/home/categories/images/wiki.gif texto alternativo http://www.eclipse.org/home/categories/images/wiki.gif texto alternativo http://www.eclipse.org/home/categories/images/wiki.gif

Opciones adicionales

Esas opciones no están directamente en lo eclipse.inianterior, pero pueden ser útiles si es necesario.


El problema `user.home` en Windows7

Cuando se inicia eclipse, leerá su archivo de almacén de claves (donde se guardan las contraseñas), un archivo ubicado en user.home.
Si por alguna razón eso user.homeno se resuelve adecuadamente en una ruta de compromiso completo, Eclipse no se iniciará.
Inicialmente planteado en esta pregunta SO , si experimenta esto, debe redefinir el archivo de almacén de claves en una ruta explícita (no más user.home para resolver al principio)

Agregue en su eclipse.ini:

-eclipse.keyring 
C:\eclipse\keyring.txt

Esto ha sido rastreado por el error 300577 , se ha resuelto en esta otra pregunta SO .


Modo de depuración

Espere, hay más de un archivo de configuración en Eclipse.
si agrega a su eclipse.iniopción:

-debug

, habilita el modo de depuración y Eclipse buscará otro archivo de configuración: un .optionsarchivo donde puede especificar algunas opciones de OSGI.
Y eso es genial cuando agrega nuevos complementos a través de la carpeta dropins.
Agregue en su archivo .options la siguiente configuración, como se describe en esta publicación de blog " Diagnóstico de Dropins " :

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2 le informará qué paquetes se encontraron en la dropins/carpeta, qué solicitud se generó y cuál es el plan de instalación. Tal vez no sea una explicación detallada de lo que realmente sucedió y lo que salió mal, pero debería brindarle información sólida sobre dónde comenzar:

  • fue tu paquete en el plan?
  • ¿Fue un problema de instalación (falla P2)
  • o tal vez simplemente no es óptimo incluir su función?

Eso viene del Bug 264924 - [reconciliador] No hay diagnóstico de problemas de dropins , lo que finalmente resuelve el siguiente problema como:

Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5

Esta es una configuración problemática ya que OCL depende de EMF que falta.
3.5M5 no proporciona diagnóstico de este problema.

Comienza el eclipse.
No hay problemas obvios. Nada en el registro de errores.

  • Help / About / PluginDetalles muestra org.eclipse.ocl.doc, pero no org.eclipse.ocl.
  • Help / About / Configurationdetalles no tiene mención (diagnóstico) de org.eclipse.ocl.
  • Help / Installation / Information Installed Softwareno tiene ninguna mención org.eclipse.ocl.

¿Dónde están los buenos marcadores de error?


Classpath manifiesto

Ver esta publicación de blog :

  • En Galileo (también conocido como Eclipse 3.5), JDT comenzó a resolver el classpath manifiesto en las bibliotecas agregadas a la ruta de compilación del proyecto. Esto funcionó si la biblioteca se agregó a la ruta de compilación del proyecto directamente o mediante un contenedor de classpath, como la instalación de biblioteca de usuario proporcionada por JDT o una implementada por un tercero.
  • En Helios, este comportamiento se cambió para excluir los contenedores de classpath de la resolución de classpath manifiesta.

Eso significa que algunos de sus proyectos ya no pueden compilarse en Helios.
Si desea volver al comportamiento de Galileo, agregue:

-DresolveReferencedLibrariesForContainers=true

Consulte el error 305037 , el error 313965 y el error 313890 para obtener referencias.


Pila IPV4

Esta pregunta SO menciona una posible solución cuando no se accede a sitios de actualización de complementos:

-Djava.net.preferIPv4Stack=true

Mencionado aquí por si acaso podría ayudar en su configuración.


Optimizaciones potenciales de JVM1.7x64

Este artículo informa:

Para el registro, las opciones más rápidas que he encontrado hasta ahora para mi prueba de banco con JVM n Windows 1.7 x64 son:

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

Pero todavía estoy trabajando en eso ...

VonC
fuente
Según este enlace, oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms , debe tener -XX: + UseConcMarkSweepGC para usar -XX: + CMSIncrementalMode. Eso falta en tu ejemplo anterior. No necesitaríamos CMSIncrementalMode en caso de que usemos G1 GC, ¿estoy en lo cierto?
RuntimeException
1
Hola, G1GC es un desastre en una Mac. Se come toda la máquina, lo que requiere un reinicio.
bmargulies
44
@VonC: -XX:CompileThreshold=5causa ralentizaciones HORRENDAS para mí. ¡Deshacerme de esta opción solo reduce mi tiempo de inicio de Eclipse a 17 segundos desde> 1 minuto! Sin mencionar cuán terriblemente lento fue el IDE en general. Ver este enlace
TrinitronX
3
@TrinitronX: (y en realidad todos), -XX:CompileThreshold=5es un valor muy bajo (predeterminado = 10000). Este valor representa el número de invocaciones / ramas de métodos antes de compilarlo. Un valor demasiado bajo hará que su CodeCache se llene prematuramente y la consola puede informar: CodeCache is full. Compiler has been disabled Una vez que el compilador esté desactivado, notará lentitud en la aplicación. Hay dos formas de solucionar esto: 1. Use -XX:CompileThreshold=1000(ajuste este número) o 2. Intente aumentar el tamaño de la caché de código usando -XX:ReservedCodeCacheSize=64m(el doble de los 32 m predeterminados)
Drupad Panchal
44
para linux use /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so para ubicación de jvm
r15habh
76

Configuración de Eclipse Galileo 3.5 y 3.5.1

Actualmente (noviembre de 2009), estoy probando con jdk6 update 17 el siguiente conjunto de opciones de configuración (con Galileo - eclipse 3.5.x, ver abajo para 3.4 o superior para Helios 3.6.x ):
(por supuesto, adaptar las rutas relativas presente en este eclipse.ini a las rutas correctas para su configuración)

Nota: para eclipse3.5 , reemplace startupy alineelauncher.library por:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519

eclipse.ini 3.5.1

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins

Vea también mi respuesta original arriba para más información.

Cambios (desde julio de 2009)

  • se refiere al lanzador y no al marco
  • complementos compartidos: org.eclipse.equinox.p2.reconciler.dropins.directoryopción.
  • Galileo admite rutas totalmente relativas para el espacio de trabajo o VM (evite tener que modificarlas de una instalación de eclipse a otra, si, por supuesto, su JVM y su espacio de trabajo permanecen iguales)
    Antes, esas rutas relativas se reescribieron en absolutas cuando se lanzó eclipse ...
  • También puede copiar el directorio JRE de una instalación Java JDK dentro de su directorio eclipse

Advertencias

Hubo un error con puntos de interrupción ignorados en realidad relacionados con el JDK.
Utilice JDK6u16 o más reciente para iniciar eclipse (puede definir tantos JDK que desee compilar dentro de eclipse: no es porque inicie un eclipse con JDK6 que tendrá que compilar con ese mismo JDK).

Max

Tenga en cuenta el uso de:

--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m

Como se documenta en el Wiki de Eclipse ,

Eclipse 3.3 admite un nuevo argumento para el lanzador: --launcher.XXMaxPermSize.
Si la VM que se está utilizando es una VM de Sun y aún no hay un -XX:MaxPermSize=argumento de VM, entonces el iniciador se agregará automáticamente -XX:MaxPermSize=256ma la lista de argumentos de VM que se están utilizando.
El lanzador 3.3 solo es capaz de identificar máquinas virtuales de Sun en Windows.

Como se detalla en esta entrada :

No todos los vms aceptan el -XX:MaxPermSizeargumento, por eso se pasa de esta manera. Puede haber (o no) problemas para identificar sun vms.
Nota: Eclipse 3.3.1 tiene un error en el que el iniciador no puede detectar una máquina virtual de Sun y, por lo tanto, no utiliza el tamaño correcto de PermGen. Parece que esto también pudo haber sido un error conocido en Mac OS X para 3.3.0 .
Si está utilizando cualquiera de estas combinaciones de plataformas, agregue el -XXindicador al eclipse.inidescrito anteriormente.

Notas:

  • la 384mlínea " " se traduce en la parte " =384m" del argumento de VM, si la VM distingue entre mayúsculas y minúsculas en " m", entonces también lo es este argumento.
  • el --launcher.prefijo " ", esto especifica que el argumento es consumido por el iniciador en sí y se agregó a los argumentos específicos del iniciador para evitar colisiones de nombres con argumentos de la aplicación. (Otros ejemplos son --launcher.library, --launcher.suppressErrors)

La -vmargs -XX:MaxPermSize=384mparte es el argumento pasado directamente a la VM, pasando por alto el iniciador por completo y no se utiliza ninguna verificación del proveedor de la VM.

VonC
fuente
Tuve un par de problemas con esto para la última versión de eclipse 3.5x64: --launcher.library plugins / org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519 -startup plugins / org.eclipse.equinox.launcher_1 .0.200.v20090520.jar también tuve que usar un jdk JAVA_HOME / bin / javaw, para el complemento m2eclipse. De lo contrario, esto es una locura increíble.
Nathan Feger
¿No están estos dos haciendo lo mismo? "--launcher.XXMaxPermSize 384m" y "-XX: MaxPermSize = 128m"
Igor Zinov'yev
@Igor Zinov'yev: es un poco redundante, pero ambos pueden ser útiles, dependiendo de la plataforma y la versión del eclipse. Los restablecí al mismo valor y completé mi respuesta con un poco de documentación con respecto a esa configuración.
VonC
Si siempre desea utilizar la última y mejor máquina virtual, ¿por qué el argumento "-Dosgi.requiredJavaVersion = 1.5" no utiliza 1.6?
Tony R
63

Eclipse Ganymede 3.4.2 configuración


Para configuraciones más recientes, vea las configuraciones de Eclipse Galileo 3.5 arriba .


JDK

La mejor configuración de JVM siempre , en mi opinión, incluye el último JDK que puede encontrar (por lo tanto, por ahora, jdk1.6.0_b07 hasta b16, excepto b14 y b15 )

eclipse.ini

Incluso con esas configuraciones de memoria bastante bajas, puedo ejecutar grandes proyectos de Java (junto con un servidor web) en mi antiguo escritorio (2002) con 2Go RAM.

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote

Ver respuesta SO de GKelly y el blog de Piotr Gabryanczyk para más detalles acerca de las nuevas opciones.

Supervisión

También puede considerar lanzar:

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

Como se dijo en una pregunta anterior sobre el consumo de memoria .

VonC
fuente
1
para qué es -Xssv2m, cuando lo incluyo en la configuración de vm no se iniciará el eclipse, eché un vistazo a los documentos para la configuración de JVM pero no pude encontrarlo
Craig Angus
Correcto ... eso fue un error tipográfico: Xss2m, no Xssv2m: -Xss determina el tamaño de la pila: -Xss1024k. Si el espacio de la pila es demasiado pequeño, eventualmente verá una clase de excepción java.lang.StackOverflowError (un mensaje de error mítico por aquí ;-))
VonC
¡Finalmente pude usar el segundo conjunto de configuraciones y me sorprendió lo bien que funcionan!
Craig Angus
¿He tenido la oportunidad de usar la configuración durante un tiempo ahora, el eclipse parece ágil, pero hacer compilaciones de hormigas parece más lento?
Craig Angus
@ Craig Angus: extraño, ¿qué versión de eclipse estás usando? ¿Y qué versión de hormiga está incluida?
VonC
20

Configuración de Eclipse Indigo 3.7.2 (Linux de 64 bits)

Configuración para Sun / Oracle java versión "1.6.0_31" y Eclipse 3.7 que se ejecuta en Linux x86-64:

-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms64m
-Xmx200m
-XX:NewSize=8m
-XX:PermSize=80m
-XX:MaxPermSize=150m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

Tenga en cuenta que esto usa solo 200 MB para el montón y 150 MB para el no montón. Si está utilizando complementos enormes, es posible que desee aumentar los límites "-Xmx200m" y "-XX: MaxPermSize = 150m".

El objetivo principal de optimización para estos indicadores ha sido minimizar la latencia en todos los casos y, como objetivo secundario de optimización, minimizar el uso de memoria.

Mikko Rantalainen
fuente
Funciona fantásticamente para mí (aunque dupliqué los valores para la configuración relacionada con la memoria, ¡todavía es bajo y se ampolla rápidamente!)
Aktau
Tiene -XX: + UseConcMarkSweepGC y -XX: + UseParNewGC. ¿Por qué? No creo que pueda usar ambos recolectores de basura, y no estoy seguro de cuál finalmente se usa.
herman
Pensé que -XX: + UseConcMarkSweepGC es para la recolección de basura de la generación anterior y -XX: + UseParNewGC se usa para la recolección de basura eden.
Mikko Rantalainen
3
Cada opción y cada argumento de una opción deben estar en su propia línea.
Josh Clemm
14

-mostrar ubicación

Para que sea más fácil tener el eclipse ejecutándose dos veces, y saber con qué espacio de trabajo está tratando

Eclipse 3.6 agrega una opción de preferencias para especificar qué mostrar para el Workspace name (shown in window title)que funciona mucho mejor que -showlocationpor tres razones:

  1. No necesita reiniciar eclipse para que surta efecto.
  2. Puedes elegir un código corto.
  3. Aparece primero, antes de la perspectiva y el nombre de la aplicación.
Stephen Denne
fuente
9

Si va con la actualización 14 de jdk6, le sugiero que use el recolector de basura G1 que parece ayudar al rendimiento.

Para hacerlo, elimine estas configuraciones:

-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing

y reemplazarlos con estos:

-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC

Ben W.
fuente
9

Si está utilizando Linux + Sun JDK / JRE 32bits , cambie el "-vm" a:

-vm 
[your_jdk_folder]/jre/lib/i386/client/libjvm.so

Si está utilizando Linux + Sun JDK / JRE 64bits , cambie el "-vm" a:

-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so

Eso está funcionando bien para mí en Ubuntu 8.10 y 9.04

Gilberto Olimpio
fuente
¿Es esto tener Eclipse usando un JDK como el entorno predeterminado?
Thorbjørn Ravn Andersen
Esto se puede usar para tener Eclipse usando un JDK específico / diferente como el entorno predeterminado.
Gilberto Olimpio
7

También puedes intentar correr con JRockit . Es una JVM optimizada para servidores, pero muchas aplicaciones cliente de larga ejecución, como las IDE, funcionan muy bien en JRockit. Eclipse no es una excepción. JRockit no tiene un espacio permanente, por lo que no necesita configurarlo.

Es posible establecer un objetivo de tiempo de pausa (ms) para evitar largas pausas gc que detengan la IU.

-showsplash
org.eclipse.platform
-vm
 C:\jrmc-3.1.2-1.6.0\bin\javaw.exe 
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20

Por lo general, no me molesto en configurar -Xmx y -Xms y dejo que JRockit haga crecer el montón como lo considere necesario. Si inicia su aplicación Eclipse con JRockit, también puede monitorear, perfilar y encontrar pérdidas de memoria en su aplicación utilizando el conjunto de herramientas JRockit Mission Control. Descarga los complementos de este sitio de actualización . Tenga en cuenta que solo funciona para Eclipse 3.3 y Eclipse 3.4

Kire Haglin
fuente
He corrido eclipse en JRockit en el pasado y corrí muy bien
Craig Angus
5

Aquí está mi propia configuración para mi Eclipse que se ejecuta en la computadora portátil i7 2630M 16GB RAM, esta configuración se ha estado utilizando durante una semana, sin un solo bloqueo, y Eclipse 3.7 funciona sin problemas.

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms1024m
-Xmx4096m 
-XX:MaxPermSize=256m

Cálculos: para Win 7 x64

  • Xms = Memoria física / 16
  • Xmx = Memoria física / 4
  • MaxPermSize = Igual que el valor predeterminado, que es 256 m
CurlyBrackets
fuente
Wow portátil de 16G? Soy curioso. ¿Es eso un System76? : D
Phil
5
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dcom.sun.management.jmxremote
-Declipse.p2.unsignedPolicy=allow

Y esta configuración ha funcionado como un encanto para mí. Estoy ejecutando OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24

Un puntero nulo
fuente
Gracias, esto ayudó bastante a mi rendimiento (configuración similar). Pero aumenté el tamaño máximo de almacenamiento dinámico a 1024 MB.
Jeff Evans
4

Mi propia configuración (Java 1.7, modificar para 1.6):

-vm
C:/Program Files (x86)/Java/jdk1.7.0/bin
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20100628
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-server
-Dosgi.requiredJavaVersion=1.7
-Xmn100m
-Xss1m
-XgcPrio:deterministic
-XpauseTarget:20
-XX:PermSize=400M
-XX:MaxPermSize=500M
-XX:CompileThreshold=10
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-XX:+AggressiveOpts
-Xms512m
-Xmx512m
Chris Dennett
fuente
3

A Eclipse le gusta mucha RAM. Utilice al menos -Xmx512M. Más si está disponible.

Conocido
fuente
2

XX: + UseParallelGC, ¡esa es la opción más increíble!


fuente
1

-vm
C: \ Archivos de programa \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll

Para especificar qué versión de Java está utilizando, y use el dll en lugar de iniciar un proceso de Java

Stephen Denne
fuente
0

Esto es lo que uso (aunque los tengo en el acceso directo en lugar del archivo de configuración):

eclipse.exe -showlocation -vm "C: \ Java \ jdk1.6.0_07 \ bin \ javaw.exe" -vmargs -Xms256M -Xmx768M -XX: + UseParallelGC -XX: MaxPermSize = 128M

Dave L.
fuente