【发布时间】:2010-10-23 11:59:53
【问题描述】:
有没有办法找出JVM启动以来的时间?
当然,除了在main 开头附近的某个地方启动计时器之外,因为在我的场景中我正在编写库代码,并且在启动后立即调用某些东西的要求太繁重了。
【问题讨论】:
有没有办法找出JVM启动以来的时间?
当然,除了在main 开头附近的某个地方启动计时器之外,因为在我的场景中我正在编写库代码,并且在启动后立即调用某些东西的要求太繁重了。
【问题讨论】:
使用这个sn-p:
long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime();
或:
long jvmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime();
这是检索 JVM 正常运行时间的正确方法。
更多信息见RuntimeMXBean
【讨论】:
可以通过以下代码获取JVM的启动时间:
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
...
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
long uptimeInMillis = runtimeMXBean.getUptime();
查看更多是https://docs.oracle.com/javase/6/docs/api/java/lang/management/RuntimeMXBean.html。
【讨论】:
如果你的jvm程序运行在linux下,可以查看startTime使用ps
ps -p <pid> -o stime,etime
【讨论】:
从 Java 5 开始,您可以使用 JMX 来发现这一点。查看“Using the platform MBeanserver”了解更多详情。您要查找的 bean 是名为“java.lang:type=Runtime”的 bean。 StartTime 属性为您提供了 JVM 的启动时间,而 Uptime 属性为您提供了 JVM 的正常运行时间。
您可以通过执行以下代码来获取对运行时 bean 的引用:
ManagementFactory.getRuntimeMXBean();
【讨论】:
也许值得一提的是,如果您不想编写任何代码,请从 java bin 目录运行 jconsole 并单击 VM Summary 并查看 Uptime 和 Process CPU time 值。
【讨论】: