2011-10-26 9 views
13

Escribí una aplicación usando Spring Batch. Puedo ver con VisualVM que el tamaño del almacenamiento dinámico es de aproximadamente 22 MB. Sin embargo, cuando se utiliza el explorador de procesos (en Windows) para ver la cantidad de memoria utilizada por el mismo, la diferencia es grande (bytes privados - 71560K y conjunto de trabajo - 80388K). ¿Cómo explicar esto? ¿Cuáles son las otras cosas que usan esta memoria?Memoria total utilizada por el proceso de Java y el tamaño de pila

Gracias

Respuesta

2

no se olvide el espacio nativo (pila)! El montón solo representa objetos, hilos/primitivos ocupan memoria adicional. También AFAIK, una vez que un proceso ocupa memoria, aunque el contenido puede ser basura, a veces no se devuelve al sistema operativo. Además, no estoy seguro de VisualVM, pero Eclipse MAT sólo muestra el montón que es "actual" (no se recoge la basura si GC se llevó a cabo en ese punto en el tiempo). Es posible que también desee ver jstat.

5

bibliotecas se comparte, la pila del hilo, la permanente generación, directo a memoria, archivos de memoria asignada.

Sin embargo, la JVM asigna el tamaño máximo de almacenamiento dinámico al inicio. La cantidad utilizada no importa tanto.

Cuestiones relacionadas