本地JVM默认垃圾回收器及如何查看?

预计阅读时间: 5分钟java


JVM默认的垃圾回收器(jdk789):微信


jdk1.7 默认垃圾收集器(Server模式):UseParallelGC(Parallel Scavenge(新生代)+Parallel Old(老年代))app

jdk1.8 默认垃圾收集器(Server模式):UseParallelGC(Parallel Scavenge(新生代)+Parallel Old(老年代))工具

jdk1.9 默认垃圾收集器G1ui


查看JVM使用的默认的垃圾收集器:
spa


-XX:+PrintCommandLineFlags参数可查看默认设置收集器类型.net

以下所示:日志

-XX:InitialHeapSize=266594752 -XX:MaxHeapSize=4265516032 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC


-XX:+PrintGCDetails参数亦可经过打印的GC日志的新生代、老年代名称判断code

以下所示:orm

Heap
PSYoungGen      total 76288K, used 3932K [0x000000076b400000, 0x0000000770900000, 0x00000007c0000000)
 eden space 65536K, 6% used [0x000000076b400000,0x000000076b7d7240,0x000000076f400000)
 from space 10752K, 0% used [0x000000076fe80000,0x000000076fe80000,0x0000000770900000)
 to   space 10752K, 0% used [0x000000076f400000,0x000000076f400000,0x000000076fe80000)
ParOldGen       total 175104K, used 0K [0x00000006c1c00000, 0x00000006cc700000, 0x000000076b400000)
 object space 175104K, 0% used [0x00000006c1c00000,0x00000006c1c00000,0x00000006cc700000)
Metaspace       used 2653K, capacity 4486K, committed 4864K, reserved 1056768K
 class space    used 285K, capacity 386K, committed 512K, reserved 1048576K


cmd查看执行命令:

java -XX:+PrintCommandLineFlags -version

以下所示:

Microsoft Windows [版本 10.0.16299.547]
(c) 2017 Microsoft Corporation。保留全部权利。

C:\Users\Jeson>java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=266594752 -XX:MaxHeapSize=4265516032 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

C:\Users\Jeson>


垃圾收集相关的经常使用参数:

参数           描述
UseSerialGC       虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial + Serial Old的收集器组合进行内存回收
UseParNewGC       打开此开关后,使用ParNew + Serial Old的收集器组合进行内存回收
UseConcMarkSweepGC  打开此开关后,使用ParNew + CMS(Concurrent Mark Sweep) + Serial Old的收集器组合进行内存回收。Serial Old收集器将做为CMS收集器出现Concurrent Mode Failure失败后的后备收集器使用
UseParallelGC     虚拟机运行在Server模式下的默认值,打开此开关后,使用Farallel Scavenge + Serial Old(PS MarkSweep)的收集器组合进行内存回收
UseParallelOldGC   打开此开关后,使用Parallel Scavenge + Parallel Old的收集器组合进行内存回收


还可以使用JDK自带的Jconsole工具进行可视化的实时查看使用的垃圾回收器及回收垃圾的数量与用时,以下图:


更多技术文章长按识别下方二维码关注我吧!!!



本文分享自微信公众号 - 一只蓝色猿(umizhang0910)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索