Quedarse sin espacio en el montón

Tengo un problema de espacio de pila. Mi programa es simple. Hay dos actores (enviar y recibir) El actor "enviar" está pasando 10000 objetos por segundo para "recibir", y recibir publica esos objetos. el objeto recibido por el receptor se guarda en el contenedor, pero el contenedor se vacía cada segundo. Así que no hay posibilidad de que el contenedor se esté quedando sin espacio. Ahora, después de 420000 objetos, mi eclipse arroja un error que dice " El actualizador de ioconsole ha encontrado un problema" . Y cuando entro en detalles veo el error Error interno :: espacio de almacenamiento dinámico de Java

He intentado aumentar el tamaño del montón. Mi tamaño de Heap es 8096m y maxpermsize es 4096

Estoy monitoreando mi código usando visualVm y noto que no excede el tamaño del montón en absoluto. Totalmente en blanco en cuanto a cómo solucionar el problema.

¿Puede alguien decirme qué otros escenarios posibles pueden conducir a tales errores?

preguntado el 12 de junio de 12 a las 17:06

4 Respuestas

IOConsole es una clase de eclipse, no la de su programa. ¿Está imprimiendo mucho en System.out? En Ventana > Preferencias, busque "consola". Establezca algún tipo de límite para todos los búferes de la consola. Intente imprimir menos salida del programa. Tal vez inicie sesión en un archivo en su lugar.

Respondido el 12 de junio de 12 a las 18:06

Sí, no pude encontrar las líneas printf porque lo hizo el archivo lagback.xml. A medida que cambió el estado en ese archivo, las líneas de registro se redujeron y el error se redujo. Muchas gracias.. - Harapos

Este problema ha ocurrido debido al tamaño del búfer en la consola.

solución:

Haga clic con el botón derecho en Consola -> Preferencias

limitar la consola.

Respondido 06 Feb 15, 05:02

Puede agregar los siguientes argumentos de JVM para tener una idea del uso de la memoria y lo que está haciendo el GC:

-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

Respondido el 12 de junio de 12 a las 18:06

Encontré el problema y traté de resolverlo cambiando la configuración del montón y el búfer en Eclipse. Sin embargo no pude resolverlo. Luego noté que hay una pérdida de memoria en mi programa y la cantidad de subprocesos aumenta con el tiempo. El problema se resolvió después de que arreglé el error. Creo que la pérdida de memoria no es la razón más probable, pero debe tenerse en cuenta.

Respondido el 07 de Septiembre de 15 a las 17:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.