Cómo configurar el arranque de Eclipse

November 9, 2007

Todos hemos oido hablar de las mejoras de rendimiento de Java 6, especialmente para aplicaciones de escritorio, entonces ¿por qué no usar Java 6 para  ejecutar Eclipse aunque desarrollemos con Java 5 o incluso Java 1.4? Sí, a algunos nos obligan a seguir viviendo en la prehistoria. Pero… ¿cuantás maquinas virtuales (jvm) tenemos instaladas? ¿Sabemos con cúal arranca Eclipse?

Cuando arrancamos Eclipse se usa la jvm que se encuentra en la variable PATH del sistema, aunque luego tengamos configurado que para los proyectos use  otra jvm. Afortunadamente ésto es facilmente configurable, basta con editar el fichero eclipse.ini, que se encuentra en el raiz del directorio del Eclipse y añadir la siguiente línea con la ruta al javaw que quieras usar:

-vm
c:/java/jre6/bin/javaw.exe

En este fichero también podemos tunear el tamaño inicial y máximo de las memorias heap y permgen. La solución a esos cuelgues repentinos o los inoportunos outofmemory cuando estamos con varios proyectos, servidores, plugins, etc. abiertos en eclipse. Recuerda que por defecto la jvm sólo usa 64MB.

La memoria heap es la asignada de forma dinámica y que puede ser liberada por el recolector de basura. Para configurar los valores inicial y máximo se usan los parametros de la jvm -Xms y -Xmx respectivamente. Por ejemplo, en mi equipo, que tiene 1GB de RAM, tengo las siguiente líneas en el eclipse.ini:

-vmargs
-Xms128m
-Xmx512m

La memoria permgen es memoria que se asigna de forma permanente y, por tanto, no puede ser liberada. En el eclipse.ini del Eclipse 3.3 ya se incluye la siguiente línea para gestionar su tamaño máximo:

–launcher.XXMaxPermSize
256m

Aun así, se pueden utilizar los parametros -XX:PermSize y -XX:MaxPermSize de la jvm para configurar los tamaños inicial y máximo de la memoria permgen. Por ejemplo, estas serian las líneas a añadir para un tamaño inicial de 128MB y máximo de 256MB:

-XX:PermSize=128m
-XX:MaxPermSize=256m

3 Comments »

The URI to TrackBack this entry is: http://jcesarperez.blogsome.com/2007/11/09/configurando-el-arranque-de-eclipse/trackback/

  1. Anda que no eres tu pirata ni ná!!!

    Comment by Pirata — January 7, 2008 @ 3:06 pm

  2. Buenas tardes Julio, y un saludo porque es la 1ª vez que participo en este Blog.

    Te cuento mi problema a ver si me puedes echar un cable:

    Resulta que hemos desarrollado e implantado una aplicación en JAVA, utilizando tambien JBoss y Eclipse, a la cual se accede vía Web a una servidor con Windows 2003 server en la cual está alojada.

    Pues bien, nuestro problema es que despúes de trabajar un rato sobre la herramienta atacando al server, esta se empieza a volver lentisima hasta un punto en el que ya ni se puede trabajar.

    Una vez examinado el servidor, nos hemos dado cuenta de que el origen puede estar en el proceso javaw.exe, ya que el uso de memoria de este proceso crece continuamente y sin ningún tipo de limitación a medida que se trabaja con la herramienta.

    Cual puede ser la causa de que este crecimiento de uso de memoria? Hay alguna forma de solucionar este problema? Alguna idea o recomendación?

    El server es un server nuevo, con un procesador Xeon a 2, 10 Ghz y 4 Mb de RAM y la aplicacion ataca a una BBDD en SQL 2005

    Te agradezco cualquier ayuda porque hasta ahora tenemos el desarrollo en fase de pruebas pero en 1 semana tenemos que pasarlo a produccion

    Saludos

    Angel Luis

    Comment by Angel Luis — January 17, 2008 @ 8:25 pm

  3. Hola Angel Luis.

    Me gustaria darte una solución, pero me temo que tu problema es demasiado general y sólo puedo darte algunas pistas igual de generales.
    Está claro que debes buscar la parte del código que se está “comiendo” la memoria. Para ello deberas hacer profiling sobre la ejecucion de tu aplicación o de modo offline a las partes de ella que ya tengas bajo sospecha (aunque para ello deberas hacer un buen juego de tests), pej dnd hagas consultas que recuperen una gran cantidad de datos, ojo tambien con los datos que vas guardando en la sesion. Para ello puedes usar el plugin de eclipse TPTP.

    Por otro lado, asegurate que estas asignando memoria de sobra a la JVM (javaw) del JBOSS en su configuracion de arranque.

    Un saludo.

    Comment by jcesarperez — January 21, 2008 @ 9:06 pm

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.


Captcha anti-spam