Cómo reducir el consumo de memoria de una aplicación desde 1.5GB a 73MB
jueves, mayo 30, 2013 at 4:16PM
Abraham

En este blog post Nikita Salnikov-Tarnovski presenta un interesante caso de estudio de una aplicación Java que inicialmente tenía un heap de 1.5GB y que terminaron reduciendo a 73MB. El primer error grande que cometieron en la aplicación es trabajar directamente con objetos creados a través de XMLBean, que resultaron emplear internamente estructuras de datos más compleja de lo necesario. Almacenando manualmente estos objetos en  java.util.HashMap la aplicación pasó de consumir 1.5 GB derrama a 214 MB.

Después cambiaron el  java.util.HashMap por una implementación más eficiente de Trove Collections, lo que bajó el consumo de memoria 143 MB. Haciendo cambios en los propios objetos que estaban almacenando para representar de un modo más eficiente la información bajaron a 93 MB. Finalmente, estaban usando una máquina virtual de 64 bits. Activando la opción para comprimir punteros pasaron a emplear 73 MB.

Aquí tenéis un gráfico que muestra cómo fue evolucionando su gasto de memoria según fueron realizando los diferentes cambios en la aplicación:

Se trata de un caso de estudio bastante interesante del cual podemos aprender lecciones para nuestras aplicaciones.

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.