¿Por qué un programa Java vacío consume memoria?
Estoy explorando el uso de memoria en Java para entender por qué mi programa pierde memoria. Después de quitar el código en mi bucle while principal, sigo obteniendo un aumento del uso de la memoria con el tiempo. Reflexionando sobre el uso de memoria de un programa vacío:
class Nothing
{ public static void main(String[] args)
{ while(true); }
}
Todavía vi un aumento de la memoria:
Entonces mi pregunta es: ¿Por qué todavía hay un patrón de diente de sierra? ¿Por qué cuando se ejecuta el GC no se guarda toda la memoria (cada vez que se ejecuta el gc (los valles) la memoria utilizada aumenta en 10-20Kb (en comparación con el valle anterior))
EDITAR
java versión "1.6.0_29"
Java (TM) SE Runtime Environment (compilación 1.6.0_29-b11)
VM de cliente HotSpot (TM) de Java (compilación 20.4-b02, modo mixto, uso compartido)
OS: Windows 7 Enterprise-32 bit