首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找正在运行的垃圾收集器类型

查找正在运行的垃圾收集器类型
EN

Stack Overflow用户
提问于 2011-02-17 12:06:52
回答 10查看 57.3K关注 0票数 70

Post JSE 5人机工程学旨在自动为您选择合适的垃圾收集器类型(以及其他内容)。

我想知道是否有任何方法可以确认/知道JVM人机工程学选择/当前设置的垃圾收集器的类型和性能目标。

EN

回答 10

Stack Overflow用户

发布于 2012-04-03 00:22:56

代码语言:javascript
运行
复制
java -XX:+PrintCommandLineFlags -version

将显示默认的垃圾收集器。我还发现下面的页面很有用,它是details the default garbage collector for various operating systems

票数 87
EN

Stack Overflow用户

发布于 2017-02-15 20:42:35

(适用于Java <= 8__)

此命令打印正在运行的JVM的GC类型:

jmap -heap <pid> | grep GC

对于现代计算机(多cpus、大内存),除非您通过JVM标志显式指定要使用哪个gc,否则JVM会将其检测为服务器计算机,并默认使用Parallel GC

e.g

jmap -heap 26806 | grep GC

输出:

具有8个线程的

并行GC

@Update -用于Java 9+

(感谢@JakeRobb的评论。)

从Java 9开始,与这个问题相关的更改有两个:

  • 需要使用jhsdb附加到java进程或启动调试器。

参考:jhsdb

  • The默认gc更改为G1.

命令格式:

jhsdb jmap --heap --pid <pid> | grep GC

e.g

jhsdb jmap --heap --pid 17573 | grep GC

输出:

具有8个线程的

垃圾优先(G1) GC

票数 23
EN

Stack Overflow用户

发布于 2013-11-07 21:43:49

代码语言:javascript
运行
复制
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.List;

public class GCInformation {

    public static void main(String[] args) {
            try {
                    List<GarbageCollectorMXBean> gcMxBeans = ManagementFactory.getGarbageCollectorMXBeans();

                    for (GarbageCollectorMXBean gcMxBean : gcMxBeans) {
                            System.out.println(gcMxBean.getName());
                            System.out.println(gcMxBean.getObjectName());
                    }

            } catch (RuntimeException re) {
                    throw re;
            } catch (Exception exp) {
                    throw new RuntimeException(exp);
            }
    }
}

例如,尝试以下命令以了解各种GC类型

代码语言:javascript
运行
复制
java -XX:+PrintCommandLineFlags  GCInformation
java -XX:+PrintCommandLineFlags -XX:+UseParallelGC GCInformation
java -XX:+PrintCommandLineFlags -XX:+UseConcMarkSweepGC -XX:+UseParNewGC GCInformation
java -XX:+PrintCommandLineFlags -XX:+UseConcMarkSweepGC -XX:-UseParNewGC GCInformation
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5024959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档