花在垃圾收集器上的时间

时间:2015-05-07 17:35:44

标签: java garbage-collection jvm

我想知道如何花时间在GC上。我认为这是可能的,因为newrelic提供有关jvm监控的这些信息。 感谢

3 个答案:

答案 0 :(得分:5)

对于热点jvm启动带有-XX:+PrintGCDetails的jvm,它将开始记录包含花费时间的gc事件

如果要将其重定向到文件

-Xloggc:/home/someuser/app/logs/jvm/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails

http://www.oracle.com/technetwork/java/javase/community/vmoptions-jsp-140102.html

答案 1 :(得分:1)

如果要捕获程序中的信息,则可以使用MXBeans进行捕获。像

List<GarbageCollectorMXBean> list = ManagementFactory
                .getGarbageCollectorMXBeans();
        for (GarbageCollectorMXBean bean : list) {
            System.out.println(bean.getCollectionTime());
        }

More Information.

答案 2 :(得分:0)

您可以使用JVM分发提供的jstat工具。运行jstat -gc <pid>。它将显示与您的问题相关的以下值:

  • GCT列中:自JVM启动以来在GC中花费的总秒数
  • FGCT列中:自JVM启动以来在完整 GC中花费的总秒数
  • YGCT列中:自JVM启动以来在 Young Gen GC中花费的总秒数