2011-01-06 11 views
17

¿Hay alguna manera de averiguar cuánta memoria está tomando mi hilo Java en la VM?¿Cuánta memoria tiene mi hilo de Java?

Por ejemplo, utilizando el volcado de rastreo de pila o algún otro medio.

Gracias

+0

Debe probar la herramienta [VisualVM] (https://visualvm.dev.java.net/). –

+7

Sun debe estar escuchando: puede utilizar las nuevas interfaces en el 'ThreadMXBean' específico de la plataforma para obtener el uso de memoria por subproceso: http://download.oracle.com/javase/6/docs/jre/api/management/ extension/com/sun/management/ThreadMXBean.html # getThreadAllocatedBytes% 28long% 29 – BeeOnRope

+0

@BeeOnRope ¡Esa es una respuesta increíble! Debes publicarlo como respuesta y lo votaré. –

Respuesta

22

Los hilos de Java utilizan el montón como memoria compartida. Los subprocesos individuales tienen su pila (cuyo tamaño puede establecerse mediante la opción de línea de comando -Xss, el valor predeterminado es 512 KB), pero el resto de la memoria (el montón) no pertenece a subprocesos específicos, y pregunta cuánto utiliza un subproceso específico simplemente no tiene sentido.

+0

Pero en mi sistema, tengo todos los hilos haciendo un tipo similar de funcionamiento. Entonces, para obtener una imagen aproximada, estoy pensando en obtener el tamaño del montón y dividirlo por el número de subprocesos para obtener el tamaño aproximado que toma cada hilo. ¿Sería eso una suposición de tarifa? –

+0

@Vikas: todavía no tiene sentido. ¿Qué desea usar ese número * para *? –

+0

Tengo que hacer un sistema para aumentar o disminuir dinámicamente el número de subprocesos en función de algunos factores externos. Quería analizar las dos opciones que tengo. 1. Continúe iniciando y eliminando subprocesos en el sistema cada tanto tiempo O 2. Comience con el número máximo de subprocesos y para reducirlo, solo les digo que esperen en un Thread.sleep. .. este segundo enfoque es más simple desde el punto de vista de la implementación, pero quería analizar cuánto espacio de pila está tomando un hilo de espera en el sistema para que se me agoten las posibilidades de falta de memoria. –

Cuestiones relacionadas