如何找出 JVM 上次垃圾回收的时间?
我只想找出 JVM 上次垃圾收集的时间。这可能吗?我怎样才能知道?
I would like to just find out the time the JVM last garbage collected. Is this possible? How can i find out?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这应该可以帮助您开始:
对 sunGcBean 的转换可能无法移植到非 sun JVM。您可以找到目标虚拟机的供应商特定扩展,或者在看门狗线程中观察 gcBean.getCollectionCount() 的增加,该线程记录看到更改的当前时间。
This ought to get you started:
The cast to sunGcBean is probably not portable to a non-sun JVM. You can find a vendor specific extension of your target VM, or watch gcBean.getCollectionCount() increasing in a watchdog thread that records the current time when it sees a change.
最简单的方法是使用 -verbose:gc 启动 Java 应用程序,这会将有关垃圾收集的信息转储到标准输出:
java -verbose:gc MyProgram
The simplest way is to start you Java application with -verbose:gc, which will dump information about garbage collection to stdout:
java -verbose:gc MyProgram
根据您运行的应用程序服务器,您可能会在管理控制台中获得所需的统计信息。垃圾收集统计信息通过 jmx 公开,几乎所有主要应用程序服务器都有一个 jmx 控制台。否则,我们可以使用 Jconsole 绑定到远程 jvm 并获取垃圾收集统计信息。 (甚至jconsole也会使用Jmx)
Depending on what application server you are running, you might get the statistics you are looking for in the admin console. Garbage Collection stats are exposed via jmx and almost all major app server has a jmx console. Otherwise we could use Jconsole to bind to remote jvm and get the garbage collection stats. (Even jconsole will use Jmx)