• Domingo 22 de Diciembre de 2024, 22:24

Autor Tema:  Outofmemoryerror  (Leído 1163 veces)

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Outofmemoryerror
« en: Lunes 22 de Mayo de 2006, 23:09 »
0
Saludos compañeros, en mi aplicacion tengo k rellenar un vector de strings y se llena de tal manera k me da un error de OutOfMemoryError, como lo podria solucionar ??? Gracias y espero vuestra ayuda.

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Outofmemoryerror
« Respuesta #1 en: Martes 23 de Mayo de 2006, 17:49 »
0
compañero, eso sucede cuando por alguna razon saturas la memoria
ram en tiempo de ejecucion.

como normalmente el pc tiene suficiente memoria como para q tu
aplicacion trabaje normalmente y no pase este error, casi siempre la
manera de llenar saturar la memoria es con un error en algun ciclo
repetitivo de la aplicacion.

por ejemplo:
asegurate de no estar creando infinitas (o un numero excesivo)
de variables en tiempo de ejecucion.

...,en tu caso, te sugiero q revises q el tamaño de tu vector sea el correcto
y q tengas presente el numero de ciclos en donde lo estas recorriendo.

a mi ya me ha pasado muchas beces... y casi siempre, son por descuidos
y alguna q otra tonteria...

espero y te sirva...

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Outofmemoryerror
« Respuesta #2 en: Miércoles 7 de Junio de 2006, 10:49 »
0
Buenas...

Para empezar, echa un vistazo a lo que dijo jpaler... Seguramente estés entrando en un bucle infinito y usas un new dentro, por lo que terminarás quedando sin memoria.

El uso normal de la memoria de la JVM es (al menos en mi compilador actual) de 64Mb.

En los parámetros de la máquina virtual (VM Params en la mayoría de los entornos) puedes cambiar la memoria utilizada por Java con el comando -Xmx y un número:

-Xmx256M dará a tu JVM el uso de 256Mb de memoria, aunque no creo que lo necesites.


Por cierto, el error OutOfMemoryError se puede capturar con catch(Throwable th) para tratar de solucionarlo en tiempo de ejecución.

También se puede controlar la memoria consumida por el programa. Si estais interesados en ello, echad un vistazo a la documentación, en la clase Runtime, los métodos freeMemory() maxMemory() y totalMemory().


Un saludo.



Silverfox