如何找出 JVM 上次垃圾回收的时间?

发布于 2024-10-25 07:25:12 字数 40 浏览 1 评论 0原文

我只想找出 JVM 上次垃圾收集的时间。这可能吗?我怎样才能知道?

I would like to just find out the time the JVM last garbage collected. Is this possible? How can i find out?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

千里故人稀 2024-11-01 07:25:12

这应该可以帮助您开始:

import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;


    for (GarbageCollectorMXBean gcBean : ManagementFactory.getGarbageCollectorMXBeans()) {
        System.out.println(gcBean.getCollectionCount());

        com.sun.management.GarbageCollectorMXBean sunGcBean = (com.sun.management.GarbageCollectorMXBean) gcBean;
        System.out.println(sunGcBean.getLastGcInfo().getStartTime());
    }

对 sunGcBean 的转换可能无法移植到非 sun JVM。您可以找到目标虚拟机的供应商特定扩展,或者在看门狗线程中观察 gcBean.getCollectionCount() 的增加,该线程记录看到更改的当前时间。

This ought to get you started:

import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;


    for (GarbageCollectorMXBean gcBean : ManagementFactory.getGarbageCollectorMXBeans()) {
        System.out.println(gcBean.getCollectionCount());

        com.sun.management.GarbageCollectorMXBean sunGcBean = (com.sun.management.GarbageCollectorMXBean) gcBean;
        System.out.println(sunGcBean.getLastGcInfo().getStartTime());
    }

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.

说不完的你爱 2024-11-01 07:25:12

最简单的方法是使用 -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

り繁华旳梦境 2024-11-01 07:25:12

根据您运行的应用程序服务器,您可能会在管理控制台中获得所需的统计信息。垃圾收集统计信息通过 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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文