Cómo darle más memoria a Eclispe

En realidad, esto se aplica para cualquier aplicación Java, aunque aquí solo voy a tomar el caso práctico del eclipse.

Muchas veces se nos cierra el eclipse de manera inesperada, sin mensaje de error ni nada. O a veces, tenemos la suerte de recibir al menos el mensaje de error: Out of memory (si no recibimos el error, seguramente podremos verlo en el archivo .log). ¿que fue lo que pasó? Es simple, la máquina virtual de java asigna determina cantidad de memoria como máximo para determinadas estructuras internas, y al ser esta cantidad insuficiente, provocó un error y se cerró la aplicación.

La solución a este problema es bastante simple: hay que decirle a la JRE que le dé más memoria a nuestra aplicación. ¿y cómo hacemos esto? La manera más práctica creo yo es hacer un acceso directo, en el cual se enlaza a la aplicación con una serie de parámetros adicionales. Estos parámetros son vmargs, PermSize y MaxPermSize. Aquí les dejo un ejemplo con los valores que yo utilizo, que me han sobrado para solucionar el problema:

“/home/gonetil/eclipse/eclipse” -vmargs -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

¡Espero que a ustedes les sirva también!

5 comentarios to “Cómo darle más memoria a Eclispe”

  1. rushmore Says:

    Voy a probar la solución ya lo habia intentado alguna vez con el parametro xmx pero sin resultado favorable.

    Utilizo eclipse mínimo 10 hrs diarias con 3 o + proyectos en el servidor. Prometo volver y comentar si solucionó el problema o no.

  2. gonetil Says:

    ok, dale. Asegurate de respetar las comillas como las puse ahi.
    Suerte.

  3. rushmore Says:

    La solución:

    eclipse -vmargs -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

    Andubo bastante bien y eclipse no se me ha cerrado demasiada veces como antes, aunque todavia se me cae cuando modifico algunos jsp mientras el tomcat esta levantado. Supongo que será cuestion de ajustar los parámetros a mis necesidades.

    Saludos y gracias !!!
    Dejo el error que me tira eclipse (algunas veces)

    #
    # An unexpected error has been detected by HotSpot Virtual Machine:
    #
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d80fa42, pid=300, tid=3688
    #
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_16-b02 mixed mode)
    # Problematic frame:
    # V [jvm.dll+0xcfa42]
    #

    ————— T H R E A D —————

    Current thread (0x00bc9158): VMThread [id=3688]

    siginfo: ExceptionCode=0xc0000005, reading address 0x526d7277

    Registers:
    EAX=0x2455979b, EBX=0x00000000, ECX=0x526d7277, EDX=0x6d879914
    ESP=0x2cb4f9e8, EBP=0x2cb4fa24, ESI=0x22c102f0, EDI=0x6d8be9b8
    EIP=0x6d80fa42, EFLAGS=0x00010216

    Top of Stack: (sp=0x2cb4f9e8)
    0x2cb4f9e8: 2455979b 6d80fa0b 6d8be9b8 6d80fc6b
    0x2cb4f9f8: 6d8c2ed4 6d8587f2 6d8c2ed4 6d8be9b8
    0x2cb4fa08: 00b76150 6d7aff0e 6d8be9b8 00000000
    0x2cb4fa18: 00000001 00b76150 00000000 2cb4fa8c
    0x2cb4fa28: 6d7b11fa 00000001 00000000 00000001
    0x2cb4fa38: 00000002 6d8be9b8 6d8be9b8 00000001
    0x2cb4fa48: 00b76150 00000000 00000000 00000001
    0x2cb4fa58: 00000001 2cb4fae4 00000000 00000000

    Instructions: (pc=0x6d80fa42)
    0x6d80fa32: 08 8b 08 8b 40 08 8b 04 88 50 8b 48 04 83 c1 08
    0x6d80fa42: 8b 11 ff 52 60 eb de c3 e9 00 00 00 00 c7 05 b4

    Stack: [0x2ca50000,0x2cb50000), sp=0x2cb4f9e8, free space=1022k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V [jvm.dll+0xcfa42]
    V [jvm.dll+0x711fa]
    V [jvm.dll+0x70f76]
    V [jvm.dll+0x745e4]
    V [jvm.dll+0x10fbba]
    V [jvm.dll+0x6fd0b]
    V [jvm.dll+0x70426]
    V [jvm.dll+0x12aeef]
    V [jvm.dll+0x12ad26]
    V [jvm.dll+0x12a7f4]
    V [jvm.dll+0x12a99d]
    V [jvm.dll+0x12a702]
    C [MSVCRT.dll+0x2a3b0]
    C [kernel32.dll+0xb683]

    VM_Operation (0x2df7fae8): full generation collection, mode: safepoint, requested by thread 0x2d60fc40

    ————— P R O C E S S —————

    Java Threads: ( => current thread )
    0x2e591328 JavaThread “Worker-5” [_thread_blocked, id=992]
    0x2d60fc40 JavaThread “Worker-1” [_thread_blocked, id=1620]
    0x2d36dd38 JavaThread “Java indexing” daemon [_thread_blocked, id=2376]
    0x2d426958 JavaThread “Start Level Event Dispatcher” daemon [_thread_blocked, id=1492]
    0x2d432e18 JavaThread “Framework Event Dispatcher” daemon [_thread_blocked, id=2804]
    0x2d43c310 JavaThread “State Data Manager” daemon [_thread_blocked, id=1612]
    0x00bd81c8 JavaThread “Low Memory Detector” daemon [_thread_blocked, id=3880]
    0x00bd6e58 JavaThread “CompilerThread0” daemon [_thread_blocked, id=2160]
    0x00bd61f8 JavaThread “Signal Dispatcher” daemon [_thread_blocked, id=1812]
    0x00bcc848 JavaThread “Finalizer” daemon [_thread_blocked, id=2928]
    0x00bcbc20 JavaThread “Reference Handler” daemon [_thread_blocked, id=3956]
    0x003c9660 JavaThread “main” [_thread_blocked, id=2220]

    Other Threads:
    =>0x00bc9158 VMThread [id=3688]
    0x00bd6090 WatcherThread [id=2060]

    VM state:at safepoint (normal execution)

    VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
    [0x003c8538/0x000006dc] Threads_lock – owner thread: 0x00bc9158
    [0x003c86b8/0x000006a0] Heap_lock – owner thread: 0x2d60fc40

    Heap
    def new generation total 3456K, used 447K [0x02c10000, 0x02fd0000, 0x05370000)
    eden space 3072K, 14% used [0x02c10000, 0x02c7ff58, 0x02f10000)
    from space 384K, 0% used [0x02f10000, 0x02f10000, 0x02f70000)
    to space 384K, 0% used [0x02f70000, 0x02f70000, 0x02fd0000)
    tenured generation total 45912K, used 25543K [0x05370000, 0x08046000, 0x22c10000)
    the space 45912K, 55% used [0x05370000, 0x06c61c88, 0x06c61e00, 0x08046000)
    compacting perm gen total 65536K, used 31211K [0x22c10000, 0x26c10000, 0x2ac10000)
    the space 65536K, 47% used [0x22c10000, 0x24a8af58, 0x24a8b000, 0x26c10000)
    No shared spaces configured.

    Dynamic libraries:
    0x00400000 – 0x0040e000 C:\eclipse\eclipse.exe
    0x7c910000 – 0x7c9c6000 C:\WINDOWS\system32\ntdll.dll
    0x7c800000 – 0x7c902000 C:\WINDOWS\system32\kernel32.dll
    0x7e390000 – 0x7e421000 C:\WINDOWS\system32\USER32.dll
    0x77ef0000 – 0x77f37000 C:\WINDOWS\system32\GDI32.dll
    0x58c30000 – 0x58cca000 C:\WINDOWS\system32\COMCTL32.dll
    0x77da0000 – 0x77e4c000 C:\WINDOWS\system32\ADVAPI32.dll
    0x77e50000 – 0x77ee2000 C:\WINDOWS\system32\RPCRT4.dll
    0x77fc0000 – 0x77fd1000 C:\WINDOWS\system32\Secur32.dll
    0x77be0000 – 0x77c38000 C:\WINDOWS\system32\MSVCRT.dll
    0x76340000 – 0x7635d000 C:\WINDOWS\system32\IMM32.DLL
    0x72000000 – 0x72012000 C:\eclipse\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.1.R33x_v20070828\eclipse_1020.dll
    0x77bd0000 – 0x77bd8000 C:\WINDOWS\system32\VERSION.dll
    0x746b0000 – 0x746fb000 C:\WINDOWS\system32\MSCTF.dll
    0x75160000 – 0x7518e000 C:\WINDOWS\system32\msctfime.ime
    0x774b0000 – 0x775ed000 C:\WINDOWS\system32\ole32.dll
    0x77f40000 – 0x77fb6000 C:\WINDOWS\system32\SHLWAPI.dll
    0x773a0000 – 0x774a3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll
    0x6d740000 – 0x6d8de000 c:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\client\jvm.dll
    0x76b00000 – 0x76b2e000 C:\WINDOWS\system32\WINMM.dll
    0x6d300000 – 0x6d308000 c:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\hpi.dll
    0x76bb0000 – 0x76bbb000 C:\WINDOWS\system32\PSAPI.DLL
    0x6d710000 – 0x6d71c000 c:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\verify.dll
    0x6d380000 – 0x6d39d000 c:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\java.dll
    0x6d730000 – 0x6d73f000 c:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\zip.dll
    0x6d540000 – 0x6d553000 C:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\net.dll
    0x71a30000 – 0x71a47000 C:\WINDOWS\system32\WS2_32.dll
    0x71a20000 – 0x71a28000 C:\WINDOWS\system32\WS2HELP.dll
    0x6d560000 – 0x6d569000 C:\Archivos de programa\Java\jdk1.5.0_16\jre\bin\nio.dll
    0x2da50000 – 0x2da9f000 C:\eclipse\configuration\org.eclipse.osgi\bundles\364\1\.cp\swt-win32-3346.dll
    0x76360000 – 0x763aa000 C:\WINDOWS\system32\comdlg32.dll
    0x7e6a0000 – 0x7eec1000 C:\WINDOWS\system32\SHELL32.dll
    0x770f0000 – 0x7717b000 C:\WINDOWS\system32\OLEAUT32.dll
    0x74d20000 – 0x74d8b000 C:\WINDOWS\system32\USP10.dll
    0x77180000 – 0x7722b000 C:\WINDOWS\system32\WININET.dll
    0x77a50000 – 0x77ae5000 C:\WINDOWS\system32\CRYPT32.dll
    0x77af0000 – 0x77b02000 C:\WINDOWS\system32\MSASN1.dll
    0x2db10000 – 0x2db18000 C:\eclipse\configuration\org.eclipse.osgi\bundles\45\1\.cp\os\win32\x86\localfile_1_0_0.dll
    0x5b150000 – 0x5b188000 C:\WINDOWS\system32\uxtheme.dll
    0x74c10000 – 0x74c3c000 C:\WINDOWS\system32\oleacc.dll
    0x76030000 – 0x76095000 C:\WINDOWS\system32\MSVCP60.dll
    0x2e100000 – 0x2e114000 C:\eclipse\configuration\org.eclipse.osgi\bundles\364\1\.cp\swt-gdip-win32-3346.dll
    0x4eba0000 – 0x4ed43000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.2180_x-ww_522f9f82\gdiplus.dll
    0x2ebe0000 – 0x2eeb6000 C:\WINDOWS\system32\xpsp2res.dll
    0x76330000 – 0x76335000 C:\WINDOWS\system32\msimg32.dll

    VM Arguments:
    jvm_args: -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
    java_command:
    Launcher Type: generic

    Environment Variables:
    JAVA_HOME=C:\Archivos de programa\Java\jdk1.5.0_16\
    PATH=c:\Archivos de programa\Java\jdk1.5.0_16\bin\..\jre\bin\client;c:\Archivos de programa\Java\jdk1.5.0_16\bin\..\jre\bin;D:\software-installed\oracle-http-server\bin;D:\software-installed\oracle-http-server\jre\1.1.8\bin;D:\software-installed\oracle-http-server\jre\1.4.2\bin\client;D:\software-installed\oracle-http-server\jre\1.4.2\bin;D:\software-installed\oracle-enterprise10g\bin;C:\Archivos de programa\Java\jdk1.5.0_16\bin;D:\software-installed\oracle-xe\app\oracle\product\10.2.0\server\bin;C:\oracle\oracle-client\bin;C:\oracle\oracle-client\jre\1.4.2\bin\client;C:\oracle\oracle-client\jre\1.4.2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Archivos de programa\QuickTime\QTSystem\
    USERNAME=user
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 107 Stepping 2, AuthenticAMD

    ————— S Y S T E M —————

    OS: Windows XP Build 2600 Service Pack 2

    CPU:total 2 (cores per cpu 2, threads per core 1) family 15 model 107 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, mmxext, 3dnowext, 3dnow

    Memory: 4k page, physical 2030828k(841860k free), swap 3250840k(1814080k free)

    vm_info: Java HotSpot(TM) Client VM (1.5.0_16-b02) for windows-x86, built on May 28 2008 01:04:49 by “java_re” with MS VC++ 6.0

  4. raynexus Says:

    Gracias por la ayuda, voy a probar a ver que tal

  5. Cabila Says:

    eclipse -vmargs -Xms256M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

    Es más correcto


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: