2008-10-27 21 views

Respuesta

30

respuesta de VonC es una solución interactiva - si usted quiere saber mediante programación, puede utilizar Runtime.totalMemory() para averiguar la cantidad total utilizada por la JVM, y Runtime.freeMemory() para averiguar cuánto de esto es todavía disponibles (es decir, se asigna a JVM, pero no se ha asignado dentro de JVM - los objetos nuevos pueden usar esta memoria).

Estos son los métodos de instancia: use Runtime.getRuntime() para obtener primero la instancia de singleton.

+0

Está en lo correcto (mi reacción inicial fue monitorear desde el exterior), +1 a usted;) – VonC

+0

Jon Skeet, hola, ¿puedes decirme cómo hacer lo mismo con C#? en Java, restaría el total, ¿verdad? Y en C# solo encontré PrivateMemorySize64 en la clase Process, pero supongo que solo da la memoria total, ¿no? – Pavel

+0

@ paulpaul1076: Sería mejor hacer una nueva pregunta para eso. –

4

Si usted es un java1.6 en algún lugar y el programa se ejecuta en Java 1.4.2, 1.5 o 1.6, puede iniciar un visualVM session, conectarse a su aplicación, y siga la memoria (y mucho más)

image of monitoring application with Visual VM

(las imágenes no se muestran en este momento, así que por favor se refiere a Monitoring an application para una ilustración.)

+0

Gracias CMS, y gracias a quien subió de categoría esto ... considerando que no era exactamente lo que el usuario solicitó;) – VonC

4

Esto no será exacto, pero para una estimación aproximada, simplemente reste Runtime.getRuntime.freeMemory() de Runtime.getRuntime.totalMemory(). Haga eso al comienzo del programa para tener una idea del uso de la memoria de sobrecarga JVM's y a intervalos más tarde en la ejecución.

Cuestiones relacionadas