有没有办法找出自JVM启动以来的时间?
当然,除了在main
的开头附近启动计时器之外,因为在我的场景中我正在编写库代码,并且要求在启动后立即调用某些东西是太麻烦。
答案 0 :(得分:76)
使用此代码段:
long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime();
或:
long jvmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime();
这是检索JVM正常运行时间的正确方式。
有关详细信息,请参阅http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html
答案 1 :(得分:12)
您可以使用以下代码获取JVM的开始时间:
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
...
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
long uptimeInMillis = runtimeMXBean.getUptime();
查看更多内容http://java.sun.com/javase/6/docs/api/java/lang/management/RuntimeMXBean.html
答案 2 :(得分:3)
如果你的jvm程序在linux上运行,你可以查看startTime使用 ps
ps -p <pid> -o stime,etime
答案 3 :(得分:2)
从Java 5开始,您可以使用JMX来查找它。查看“Using the platform MBeanserver”以了解更多详情。您正在寻找的bean是名为“java.lang:type = Runtime”的bean。 StartTime属性为您提供了JVM启动的时间,Uptime属性告诉您JVM的正常运行时间。
您可以通过执行以下代码获取对Runtime bean的引用:
ManagementFactory.getRuntimeMXBean();
答案 4 :(得分:0)
或许值得一提的是,如果您不想编写任何代码,请从java bin目录运行jconsole,然后单击VM Summary并查看Uptime和Process CPU时间值。