Java - Java heap size exceeded

   
Vista:

Java heap size exceeded

Publicado por Francisco López de la Franca (2 intervenciones) el 08/04/2010 11:25:21
Hola.
Tengo instalada una aplicación que requiere JVM 1.5. El ordenador tiene instalado Windows XP Professional SP3 con 2 GB de memoria y mucho disco duro libre, con la administración de la memoria virtual por el sistema.
El problema que tengo es que aunque le ponga en el arranque de la aplicación la opción -Xmx1024M, es decir, le reserve al heap 1 GB de la RAM, hay operaciones para las que me da error por el tamaño del heap excedido.

He intentado asignarle de heap 5 GB, es decir, más que la RAM del equipo, y la aplicación no lo permite. Me he quedado un poco asombrado el ver que la JVM, que es una aplicación más y que debería despreocuparse por completo de la memoria, para eso está el Sistema Operativo, no puede configurarse a un tamaño mayor al de la RAM.

Quería saber si existe alguna manera para que el tamaño del heap de la JVM pueda ser superior al de la RAM; para eso existe la memoria virtual, ¡digo yo!

Muchas gracias por adelantado.
Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Java heap size exceeded

Publicado por Raul Lapeira (24 intervenciones) el 08/04/2010 17:24:58
Francisco me temo que la JVM no funciona asi, es mas complejo. Una cosa es asignar memoria y otra que la heap la tenga disponible en un momento dado. De hecho pocos productos basados en Java requieren mas de 1 Giga funcionando correctamente.

Una posibilidad es que tenga un caso de hogging de recursos, pero eso habria que verlo en detalle.

Respues proporcionada por expertos en java de consultoriajava.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Java heap size exceeded

Publicado por Sonic (32 intervenciones) el 12/04/2010 05:38:44
Yo creo que debes revisar tu aplicación, puede se que haya un caso en el que reserves mucha memoria, para alguna estructura de datos, llamese HashTable, List, Array, etc.

Ahí es donde debes terminarte la memoria.

Si necesitas mas de 4 GB para tu aplicación, quiere decir que al menos estarán 50 Usuarios concurrentes trabajando en ella?

Salud2!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar