agotamiento del almacenamiento dinámico de Java

El almacenamiento dinámico de Java™ se agota cuando la recogida de basura no puede liberar suficientes objetos para realizar una nueva asignación de objetos.

La recogida de basura sólo puede liberar objetos a los que ya no hacen referencia otros objetos o a los que se hace referencia desde las pilas de hebras (consulte Asignación de almacenamiento dinámico en la documentación de usuario de OpenJ9 para obtener más detalles).

El agotamiento del almacenamiento dinámico de Java se puede identificar a partir de la salida -verbose:gc mediante la recogida de basura que se produce cada vez con más frecuencia, con menos memoria liberada. Finalmente, la JVM fallará y la ocupación del almacenamiento dinámico estará al 100% o casi al 100% (consulte Registros de recogida de basura detallados en la documentación de usuario deOpenJ9 para obtener más detalles sobre la salida de -verbose:gc ).

Si el almacenamiento dinámico de Java se está agotando y el aumento del tamaño del almacenamiento dinámico de Java no resuelve el problema, la siguiente etapa es examinar los objetos que están en el almacenamiento dinámico y buscar estructuras de datos sospechosas que hagan referencia a un gran número de objetos Java que deberían haberse liberado. Utilice Análisis de volcado de almacenamiento dinámico, tal como se detalla en Utilización de volcado de almacenamiento dinámico en la Referencia de VM deJ9. Se puede obtener información similar utilizando otras herramientas, tales como JProbe y OptimizeIt.