2009-05-03 32 views
38

¿Hay alguna manera de averiguar la hora desde que comenzó la JVM?vez desde que se inició JVM

Por supuesto, aparte de iniciar un temporizador en algún lugar cerca del comienzo de main, porque en mi escenario estoy escribiendo código de biblioteca y el requisito de que se llame algo inmediatamente después del inicio es demasiado engorroso.

Respuesta

61

Usar este fragmento:

long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime(); 

o:

long jvmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime(); 

Ésta es la correcta manera de recuperar el tiempo de funcionamiento de JVM.

Para más información ver http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html

+2

Observe que devuelve un valor en milisegundos, no segundos. –

2

A partir de Java 5, puede utilizar JMX para descubrir esto. Consulte "Using the platform MBeanserver" para obtener más detalles. El bean que está buscando es el bean llamado "java.lang: type = Runtime". El atributo StartTime le da la hora en que se inició la JVM y el atributo Uptime le informa el tiempo de actividad de la JVM.

Usted puede obtener una referencia al bean en tiempo de ejecución mediante la ejecución de este código: ManagementFactory.getRuntimeMXBean();

0

Tal vez vale la pena mencionar que si usted no quiere que escribir ningún código correr hasta jconsole desde el directorio bin de Java VM y haga clic en Resumen y ver los valores de tiempo de Uptime y Process CPU.

2

si su programa JVM se ejecuta en Linux, se puede ver el uso horaInicio ps

ps -p <pid> -o stime,etime 
Cuestiones relacionadas