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

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

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

Configuraciones de Eclipse Helios 3.6 y 3.6.x

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 Eclipse Galileo 3.5.x , aquí hay una mirada profunda a un archivo de configuración de eclipse.ini “optimizado” para Eclipse Helios 3.6.x:

  • basado en opciones de tiempo de ejecución ,
  • y utilizando Sun-Oracle JVM 1.6u21 b7 , lanzado el 27 de julio ( algunas de las opciones de propiedad de Sun pueden estar involucradas )

( por “optimizado”, me refiero a poder ejecutar un Eclipse de pleno vuelo en nuestra estación de trabajo en mal estado, un viejo P4 de 2002 con 2Go RAM y XPSp3. Pero también he probado esas mismas configuraciones en Windows 7 )

Eclipse.ini

texto alternativo

ADVERTENCIA : para plataformas que no sean Windows, use la opción propietaria de Sun -XX:MaxPermSize lugar de la opción propietaria de Eclipse --launcher.XXMaxPermSize .
Es decir: a menos que esté utilizando la última versión de jdk6u21 7 . 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 p2.reconciler.dropins.directory a un directorio externo de su elección.
Vea 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 archivo eclipse.ini .


El temido Oracle JVM 1.6u21 (pre build 7) y los lockings de Eclipse

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 el 6u21 build 7, ver más abajo).

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

  • descargando el eclipse_1308.dll fijo (16 de julio de 2010)
  • y colocarlo en
 (eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

Eso es. No hay ajustes para ajustar aquí (nuevamente, solo para Helios en Windows con una precomposición 6u21 7 ).
Para la plataforma que no es de Windows, debe volver a la opción propietaria de Sun -XX:MaxPermSize .

El problema se basa en una regresión: la identificación de JVM falla debido a una nueva marca de Oracle en java.exe , y desencadena el error 319514 en Eclipse.
Andrew se encargó de Bug 320005 – [launcher] --launcher.XXMaxPermSize: isSunVM debería devolver true para Oracle , pero eso solo será para Helios 3.6.1.
Francis Upton , otro comentarista de Eclipse, reflexiona sobre la situación .

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 comstackción 7 , puede volver al --launcher.XXMaxPermSize (opción eclipse) en lugar de -XX:MaxPermSize (la opción no estándar).
La detección automática que ocurre en el eclipse.exe C shim eclipse.exe aún buscará la cadena ” Sun Microsystems “, pero con 6u21b7, ahora funcionará nuevamente.

Por ahora, aún -XX:MaxPermSize versión -XX:MaxPermSize (porque no tengo idea de cuándo todos lanzarán Eclipse el JDK correcto ).


Implicit `-startup` y` –launcher.library`

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

  • Inicio: si no se especifica, el ejecutable buscará en el directorio de complementos del paquete org.eclipse.equinox.launcher la versión más alta.
  • launcher.library: si no se especifica, el ejecutable busca en el directorio de plugins el fragmento org.eclipse.equinox.launcher.[platform] apropiado con la versión más alta y utiliza la biblioteca compartida llamada eclipse_* inside.

Usa JDK6

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

 -Dosgi.requiredJavaVersion = 1.6 

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


+ DesbloquearVMOptionsExperimental

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

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

Han sido reportados en esta publicación de blog para potencialmente acelerar Eclipse.
Vea todas las opciones de JVM aquí y también en la página oficial de opciones de Hotspot de Java .
Nota: la lista detallada de esas opciones informa que UseFastAccessorMethods podría estar activo de forma predeterminada.

Ver también “Actualizar su JVM” :

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


Abrir archivos en Eclipse desde la línea de comando

Vea la publicación del blog de Andrew Niefer que informa esta nueva opción:

 --launcher.defaultAction openFile 

Esto le dice al iniciador que si se llama con una línea de comandos que solo contiene argumentos que no comienzan con ” - “, entonces esos argumentos se deben tratar como si siguieran ” --launcher.openFile “.

 eclipse myFile.txt 

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

Las rutas relativas se resolverán primero contra el directorio de trabajo actual, y las segundas contra el directorio de progtwig de eclipse.

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


p2 y el indicador de diálogo sin signo

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

texto alternativo

, agrega en tu eclipse.ini :

 -Declipse.p2.unsignedPolicy=allow 

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

Quiero decir que la investigación de seguridad respalda el hecho de que hay menos indicaciones.
La gente ignora las cosas que surgen en el flujo de algo que quieren que se haga.

Para 3.6, no deberíamos mostrar advertencias en el medio del flujo: no importa cuánto simplifiquemos, la gente simplemente las ignorará.
En su lugar, debemos recostackr 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 puedan arreglarlo: agregar confianza, configurar 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 alt text 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 el eclipse.ini anterior, 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 algún motivo ese user.home no se resuelve correctamente en una ruta de acceso completa, Eclipse no se iniciará.
Inicialmente planteado en esta pregunta de SO , si experimenta esto, necesita redefinir el archivo de almacén de claves a una ruta explícita (no más usuario.hogar para resolver al inicio)

Agregue 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

Espera, hay más de un archivo de configuración en Eclipse.
si agrega a su eclipse.ini la opción:

 -debug 

, habilita el modo de depuración y Eclipse buscará otro archivo de configuración: un archivo .options donde puede especificar algunas opciones 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 del 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 dropins/ folder, qué solicitud se generó y cuál es el plan de instalación. Tal vez no sea una explicación detallada de lo que sucedió realmente, y de lo que salió mal, pero debería brindarle información sólida sobre dónde comenzar:

  • ¿Tu paquete estaba en el plan?
  • Fue un problema de instalación (falla P2)
  • o tal vez simplemente no es óptimo incluir tu característica?

Eso viene de Bug 264924 – [reconciliador] Sin diagnóstico de problemas de caída , 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 ningún diagnóstico de este problema.

Comience eclipse.
Sin problemas obvios Nada en el registro de errores.

  • Help / About / Plugin muestran org.eclipse.ocl.doc , pero no org.eclipse.ocl .
  • Help / About / Configuration Detalles de Help / About / Configuration no tiene mención (de diagnóstico) de org.eclipse.ocl .
  • Help / Installation / Information Installed Software no menciona a org.eclipse.ocl .

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


Manifiesto Classpath

Ver esta publicación en el blog :

  • En Galileo (también conocido como Eclipse 3.5), JDT comenzó a resolver el classpath de manifiesto en bibliotecas añadidas a la ruta de comstackción del proyecto. Esto funcionó si la biblioteca se agregó a la ruta de comstackción del proyecto directamente o a través de un contenedor de ruta de clases, como la facilidad de la biblioteca del usuario proporcionada por JDT o una implementada por un tercero.
  • En Helios, este comportamiento se modificó para excluir los contenedores classpath de la resolución de clase de manifiesto.

Eso significa que algunos de sus proyectos podrían no comstackrse en Helios.
Si desea volver al comportamiento de Galileo, agregue:

 -DresolveReferencedLibrariesForContainers=true 

Ver error 305037 , error 313965 y error 313890 para referencias.


Pila IPV4

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

 -Djava.net.preferIPv4Stack=true 

Mencionado aquí en caso de que pueda ayudar en su configuración.


Optimizaciones potenciales JVM1.7×64

Este artículo informa:

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

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

Pero todavía estoy trabajando en eso …

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 a continuación para 3.4 o superior para Helios 3.6.x ):
(por supuesto, adapte las rutas relativas presentes en este eclipse.ini a las rutas correctas para su configuración)

Nota: para eclipse3.5 , reemplace startup líneas de startup y launcher.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 

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

Cambios (desde julio de 2009)

  • se refiere al iniciador y no al marco
  • complementos compartidos: opción org.eclipse.equinox.p2.reconciler.dropins.directory .
  • Galileo admite rutas de acceso totalmente relativas para el espacio de trabajo o la máquina virtual (evite tener que modificar las de una instalación de eclipse a otra, si, por supuesto, su JVM y su área de trabajo permanecen iguales)
    Antes, esos caminos relativos seguían siendo reescritos en los absolutos cuando se lanzó Eclipse …
  • También puede copiar el directorio JRE de una instalación Java JDK dentro de su directorio de eclipse

Advertencias

Hubo un error con los puntos de corte ignorados realmente relacionados con el JDK.
Utilice JDK6u16 o más reciente para iniciar eclipse (Puede definir tantos JDK que desee comstackr dentro de Eclipse: no es porque inicie un eclipse con JDK6 que tendrá que comstackr con ese mismo JDK).

Max

Tenga en cuenta el uso de:

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

Como se documenta en Eclipse Wiki ,

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

Como se detalla en esta entrada :

No todos los -XX:MaxPermSize aceptan el argumento -XX:MaxPermSize razón por la cual 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 Sun y, por lo tanto, no utiliza el tamaño correcto de PermGen. Parece que esto puede haber sido un error conocido en Mac OS X para 3.3.0 también.
Si está usando cualquiera de estas combinaciones de plataforma, agregue la bandera -XX al eclipse.ini como se describe arriba.

Notas:

  • la línea ” 384m ” se traduce a la parte ” =384m ” del argumento VM, si la VM es sensible a mayúsculas y minúsculas en la ” m “, entonces este es el argumento.
  • el --launcher.--launcher. “, esto especifica que el argumento es consumido por el propio lanzador y se agregó a los argumentos específicos del lanzador para evitar colisiones de nombres con los argumentos de la aplicación. (Otros ejemplos son --launcher.library , --launcher.suppressErrors )

La parte -vmargs -XX:MaxPermSize=384m es el argumento pasado directamente a la VM, eludiendo por completo el iniciador y no se utiliza ninguna verificación en el proveedor de VM.

Configuraciones de Eclipse Ganimedes 3.4.2


Para configuraciones más recientes, vea la configuración anterior de Eclipse Galileo 3.5 .


JDK

La mejor configuración de JVM siempre , en mi opinión, incluye el último JDK que puede encontrar (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 Java (junto con un servidor web) en mi viejo (2002) escritorio 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 

Vea la respuesta SO de GKelly y la entrada del blog de Piotr Gabryanczyk para obtener más detalles sobre las nuevas opciones.

Supervisión

También puedes considerar lanzar:

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

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

Configuraciones Eclipse Indigo 3.7.2 (64 bit linux)

Configuraciones para Sun / Oracle java versión “1.6.0_31” y Eclipse 3.7 ejecutando en x86-64 Linux:

 -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 utiliza solo 200 MB para el montón y 150 MB para el no montón. Si está utilizando complementos enormes, es posible que desee boost los límites “-Xmx200m” y “-XX: MaxPermSize = 150m”.

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

-mostrar ubicación

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

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

  1. No necesita reiniciar Eclipse para que tenga efecto.
  2. Puedes elegir un código corto.
  3. Aparece primero, antes de la perspectiva y el nombre de la aplicación.

Si vas con la actualización 14 de jdk6, te sugiero usar 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

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

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

Si está utilizando Linux + Sun JDK / JRE 64bits , cambie “-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

También puedes intentar ejecutar con JRockit . Es una JVM optimizada para servidores, pero muchas aplicaciones cliente de larga ejecución, como 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 objective de tiempo de pausa (ms) para evitar largas pausas de cc que bloqueen 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 dejar que JRockit crezca el montón como lo considere necesario. Si ejecuta su aplicación Eclipse con JRockit, también puede supervisar, crear perfiles y encontrar pérdidas de memoria en su aplicación utilizando el conjunto de herramientas de control de misión de JRockit. Descargue los complementos desde este sitio de actualización . Tenga en cuenta que solo funciona para Eclipse 3.3 y Eclipse 3.4

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 que se haya producido un solo locking, 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 de 256 m
 -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 estos ajustes han funcionado como un encanto para mí. Estoy ejecutando OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24

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 

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

Si es como yo y tuvo problemas con la versión actual de Oracle de 1.6, entonces es posible que desee actualizar su JDK o establecer

  -XX: MaxPermSize 

. Más información está disponible aquí: http://java.dzone.com/articles/latest-java-update-fixes

XX: + UseParallelGC esa es la opción más increíble que haya existido !!!

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

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

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