首页 > 解决方案 > 从二进制堆转储中提取 JVM 正常运行时间

问题描述

我正在分析几个堆转储,并且对从堆转储中获取 JVM 正常运行时间(或启动时间)的方法感兴趣。使用 Eclipse 内存分析器,我可以轻松获取系统属性和类路径,但找不到正常运行时间的方法。

标签: javajvmheap-dumphprof

解决方案


您可以尝试搜索sun.util.calendar.ZoneInfoFile类,它包含该long CURRT字段。它的值与 VisualVM 中的 JVM 开始时间匹配(在我的情况下,至少与Oracle JVM匹配):

MAT截图

Type|Name |Value
---------------------
long|CURRT|1578570465
---------------------

纪元转换器说它是2020/1/9 6.47 am EST (GMT-5),我启动我的 Java 应用程序的时间。以防万一,该hprof文件是在几分钟后创建的,位于7.03 am.


推荐阅读