【问题标题】:time since JVM started自 JVM 启动以来的时间
【发布时间】:2010-10-23 11:59:53
【问题描述】:

有没有办法找出JVM启动以来的时间?

当然,除了在main 开头附近的某个地方启动计时器之外,因为在我的场景中我正在编写库代码,并且在启动后立即调用某些东西的要求太繁重了。

【问题讨论】:

    标签: java time jvm


    【解决方案1】:

    使用这个sn-p:

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

    或:

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

    这是检索 JVM 正常运行时间的正确方法。

    更多信息见RuntimeMXBean

    【讨论】:

    • 请注意,它以毫秒为单位返回一个值,而不是秒。
    【解决方案2】:

    可以通过以下代码获取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

    【讨论】:

      【解决方案3】:

      如果你的jvm程序运行在linux下,可以查看startTime使用ps

      ps -p <pid> -o stime,etime 
      

      【讨论】:

        【解决方案4】:

        从 Java 5 开始,您可以使用 JMX 来发现这一点。查看“Using the platform MBeanserver”了解更多详情。您要查找的 bean 是名为“java.lang:type=Runtime”的 bean。 StartTime 属性为您提供了 JVM 的启动时间,而 Uptime 属性为您提供了 JVM 的正常运行时间。

        您可以通过执行以下代码来获取对运行时 bean 的引用: ManagementFactory.getRuntimeMXBean();

        【讨论】:

          【解决方案5】:

          也许值得一提的是,如果您不想编写任何代码,请从 java bin 目录运行 jconsole 并单击 VM Summary 并查看 Uptime 和 Process CPU time 值。

          【讨论】:

            猜你喜欢
            • 2014-06-10
            • 2018-07-10
            • 2012-04-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-08-28
            相关资源
            最近更新 更多