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!
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.
ok, dale. Asegurate de respetar las comillas como las puse ahi.
Suerte.
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
Gracias por la ayuda, voy a probar a ver que tal
eclipse -vmargs -Xms256M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
Es más correcto