很遗憾,我忘记了记录生成堆转存文件的时间。我希望在堆中,标准库缓存了像System.currentTimeMillis()
这样的东西。不幸的是,我没有任何缓存它的业务对象。
一种困难的选择是浏览所有线程,并查看它们的本地变量是否存储了某个时间戳。然而,这不是我能够应用于所有堆转储的技巧。
我查看了OpenJDK中的java.lang.System,看起来我们没有缓存值。我们去本地代码获取当前时间,但我们没有将从本地代码获取的结果存储在任何地方。https://hg.openjdk.java.net/jdk8/jdk8/jdk/file/4d891c8db5c1/src/share/classes/java/lang/System.java