java - 从二进制堆转储中提取 JVM 正常运行时间

标签 java jvm heap-dump hprof

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

最佳答案

您可以尝试搜索sun.util.calendar.ZoneInfoFile类,它包含long CURRT字段。它的值与 VisualVM 中的 JVM 启动时间相匹配(在我的例子中,至少与 Oracle JVM 相同):

Screenshot from MAT

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

The epoch converter说现在是 2020/1/9 6.47 am EST (GMT-5),这是我启动 Java 应用程序的时间。为了以防万一,hprof 文件在几分钟后(7.03 am)创建。

关于java - 从二进制堆转储中提取 JVM 正常运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59663415/

相关文章:

针对变量的 Scala 匹配函数

php - 我可以用 PHP 打印整个程序状态吗?

java - 为 spring boot 应用程序捕获 heapdump

Java:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

java - Jackson 反序列化有界类型

Java TimeZoneUpdater 因 java.io.EOFException 崩溃

android - Detox - DetoxManager 在运行时找不到 kotlin/jvm/functions/Function1

java - 为什么接口(interface)根据类文件格式扩展对象?

java - 使用泄漏的 SSLSocketImpl 分析堆转储

java - 根据条件对ArrayList数据进行排序和排序