jvm System.gc()说明

System.gc():通知虚拟机进行垃圾回收,触发full gc,对新生代、老年代、元空间进行回收

**********************************

使用Parallel old垃圾收集器时,默认在full gc前会先触发年轻代gc,

可用参数-XX:-ScavengeBeforeFullGC禁止年轻代gc

public class Test {public static void main(String[] args){System.gc();}
}

********************

控制台输出

虚拟机参数:-XX:+UseParallelGC -Xlog:gc*

[0.030s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.032s][info][gc           ] Using Parallel****************
新生代gc[0.141s][info][gc,start     ] GC(0) Pause Young (System.gc())
[0.142s][info][gc,heap      ] GC(0) PSYoungGen: 3328K(38400K)->984K(38400K) Eden: 3328K(33280K)->0K(33280K) From: 0K(5120K)->984K(5120K)
[0.142s][info][gc,heap      ] GC(0) ParOldGen: 0K(87552K)->8K(87552K)
[0.142s][info][gc,metaspace ] GC(0) Metaspace: 622K(4864K)->622K(4864K) NonClass: 564K(4352K)->564K(4352K) Class: 58K(512K)->58K(512K)
[0.142s][info][gc           ] GC(0) Pause Young (System.gc()) 3M->0M(123M) 1.521ms
[0.142s][info][gc,cpu       ] GC(0) User=0.00s Sys=0.00s Real=0.00s****************
full gc:新生代、老年代、元空间进行垃圾回收[0.142s][info][gc,start     ] GC(1) Pause Full (System.gc())
[0.142s][info][gc,phases,start] GC(1) Marking Phase
[0.144s][info][gc,phases      ] GC(1) Marking Phase 1.561ms
[0.144s][info][gc,phases,start] GC(1) Summary Phase
[0.144s][info][gc,phases      ] GC(1) Summary Phase 0.010ms
[0.144s][info][gc,phases,start] GC(1) Adjust Roots
[0.145s][info][gc,phases      ] GC(1) Adjust Roots 0.735ms
[0.145s][info][gc,phases,start] GC(1) Compaction Phase
[0.147s][info][gc,phases      ] GC(1) Compaction Phase 2.579ms
[0.147s][info][gc,phases,start] GC(1) Post Compact
[0.147s][info][gc,phases      ] GC(1) Post Compact 0.034ms
[0.147s][info][gc,heap        ] GC(1) PSYoungGen: 984K(38400K)->0K(38400K) Eden: 0K(33280K)->0K(33280K) From: 984K(5120K)->0K(5120K)
[0.147s][info][gc,heap        ] GC(1) ParOldGen: 8K(87552K)->925K(87552K)
[0.147s][info][gc,metaspace   ] GC(1) Metaspace: 622K(4864K)->622K(4864K) NonClass: 564K(4352K)->564K(4352K) Class: 58K(512K)->58K(512K)
[0.147s][info][gc             ] GC(1) Pause Full (System.gc()) 0M->0M(123M) 5.075ms
[0.147s][info][gc,cpu         ] GC(1) User=0.00s Sys=0.00s Real=0.01s
[0.148s][info][gc,heap,exit   ] Heap
[0.148s][info][gc,heap,exit   ]  PSYoungGen      total 38400K, used 1664K [0x00000000d5f00000, 0x00000000d8980000, 0x0000000100000000)
[0.148s][info][gc,heap,exit   ]   eden space 33280K, 5% used [0x00000000d5f00000,0x00000000d60a01e8,0x00000000d7f80000)
[0.148s][info][gc,heap,exit   ]   from space 5120K, 0% used [0x00000000d7f80000,0x00000000d7f80000,0x00000000d8480000)
[0.148s][info][gc,heap,exit   ]   to   space 5120K, 0% used [0x00000000d8480000,0x00000000d8480000,0x00000000d8980000)
[0.148s][info][gc,heap,exit   ]  ParOldGen       total 87552K, used 925K [0x0000000081c00000, 0x0000000087180000, 0x00000000d5f00000)
[0.148s][info][gc,heap,exit   ]   object space 87552K, 1% used [0x0000000081c00000,0x0000000081ce7648,0x0000000087180000)
[0.148s][info][gc,heap,exit   ]  Metaspace       used 625K, capacity 4531K, committed 4864K, reserved 1056768K
[0.148s][info][gc,heap,exit   ]   class space    used 58K, capacity 402K, committed 512K, reserved 1048576K

虚拟机参数:-XX:+UseParallelGC -XX:+ScavengeBeforeFullGC -Xlog:gc*

[0.024s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.025s][info][gc           ] Using Parallel
[0.129s][info][gc,start     ] GC(0) Pause Full (System.gc())
[0.129s][info][gc,phases,start] GC(0) Marking Phase
[0.131s][info][gc,phases      ] GC(0) Marking Phase 1.772ms
[0.131s][info][gc,phases,start] GC(0) Summary Phase
[0.131s][info][gc,phases      ] GC(0) Summary Phase 0.010ms
[0.131s][info][gc,phases,start] GC(0) Adjust Roots
[0.131s][info][gc,phases      ] GC(0) Adjust Roots 0.537ms
[0.131s][info][gc,phases,start] GC(0) Compaction Phase
[0.135s][info][gc,phases      ] GC(0) Compaction Phase 3.561ms
[0.135s][info][gc,phases,start] GC(0) Post Compact
[0.135s][info][gc,phases      ] GC(0) Post Compact 0.053ms
[0.135s][info][gc,heap        ] GC(0) PSYoungGen: 3328K(38400K)->0K(38400K) Eden: 3328K(33280K)->0K(33280K) From: 0K(5120K)->0K(5120K)
[0.135s][info][gc,heap        ] GC(0) ParOldGen: 0K(87552K)->924K(87552K)
[0.135s][info][gc,metaspace   ] GC(0) Metaspace: 614K(4864K)->614K(4864K) NonClass: 556K(4352K)->556K(4352K) Class: 58K(512K)->58K(512K)
[0.135s][info][gc             ] GC(0) Pause Full (System.gc()) 3M->0M(123M) 6.102ms
[0.135s][info][gc,cpu         ] GC(0) User=0.00s Sys=0.00s Real=0.01s
[0.136s][info][gc,heap,exit   ] Heap
[0.136s][info][gc,heap,exit   ]  PSYoungGen      total 38400K, used 1664K [0x00000000d5f00000, 0x00000000d8980000, 0x0000000100000000)
[0.136s][info][gc,heap,exit   ]   eden space 33280K, 5% used [0x00000000d5f00000,0x00000000d60a01f0,0x00000000d7f80000)
[0.136s][info][gc,heap,exit   ]   from space 5120K, 0% used [0x00000000d8480000,0x00000000d8480000,0x00000000d8980000)
[0.136s][info][gc,heap,exit   ]   to   space 5120K, 0% used [0x00000000d7f80000,0x00000000d7f80000,0x00000000d8480000)
[0.136s][info][gc,heap,exit   ]  ParOldGen       total 87552K, used 924K [0x0000000081c00000, 0x0000000087180000, 0x00000000d5f00000)
[0.136s][info][gc,heap,exit   ]   object space 87552K, 1% used [0x0000000081c00000,0x0000000081ce7170,0x0000000087180000)
[0.136s][info][gc,heap,exit   ]  Metaspace       used 624K, capacity 4531K, committed 4864K, reserved 1056768K
[0.136s][info][gc,heap,exit   ]   class space    used 58K, capacity 402K, committed 512K, reserved 1048576K

说明:使用-XX:-ScavengeBeforeFullGC后,不在full gc前进行年轻代gc

**********************************

System.gc()默认使用并行收集,不会使用并发收集,即使使用G1垃圾收集器时,也会使用并行收集

public class Test {public static void main(String[] args){System.gc();}
}

********************

控制台输出

虚拟机参数:-Xlog:gc*

[0.024s][info][gc,heap] Heap region size: 1M
[0.024s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.027s][info][gc           ] Using G1
[0.057s][info][gc           ] Periodic GC disabled
[0.143s][info][gc,task      ] GC(0) Using 3 workers of 8 for full compaction
[0.143s][info][gc,start     ] GC(0) Pause Full (System.gc())
[0.143s][info][gc,phases,start] GC(0) Phase 1: Mark live objects
[0.144s][info][gc,phases      ] GC(0) Phase 1: Mark live objects 1.117ms
[0.144s][info][gc,phases,start] GC(0) Phase 2: Prepare for compaction
[0.145s][info][gc,phases      ] GC(0) Phase 2: Prepare for compaction 0.449ms
[0.145s][info][gc,phases,start] GC(0) Phase 3: Adjust pointers
[0.145s][info][gc,phases      ] GC(0) Phase 3: Adjust pointers 0.563ms
[0.145s][info][gc,phases,start] GC(0) Phase 4: Compact heap
[0.146s][info][gc,phases      ] GC(0) Phase 4: Compact heap 0.759ms
[0.147s][info][gc,heap        ] GC(0) Eden regions: 2->0(2)
[0.147s][info][gc,heap        ] GC(0) Survivor regions: 0->0(0)
[0.147s][info][gc,heap        ] GC(0) Old regions: 0->2
[0.147s][info][gc,heap        ] GC(0) Archive regions: 0->0
[0.147s][info][gc,heap        ] GC(0) Humongous regions: 0->0
[0.147s][info][gc,metaspace   ] GC(0) Metaspace: 622K(4864K)->622K(4864K) NonClass: 564K(4352K)->564K(4352K) Class: 58K(512K)->58K(512K)
[0.147s][info][gc             ] GC(0) Pause Full (System.gc()) 2M->0M(8M) 4.275ms
[0.147s][info][gc,cpu         ] GC(0) User=0.02s Sys=0.00s Real=0.00s
[0.148s][info][gc,heap,exit   ] Heap
[0.148s][info][gc,heap,exit   ]  garbage-first heap   total 8192K, used 925K [0x0000000081c00000, 0x0000000100000000)
[0.148s][info][gc,heap,exit   ]   region size 1024K, 1 young (1024K), 0 survivors (0K)
[0.148s][info][gc,heap,exit   ]  Metaspace       used 625K, capacity 4531K, committed 4864K, reserved 1056768K
[0.148s][info][gc,heap,exit   ]   class space    used 58K, capacity 402K, committed 512K, reserved 1048576K

说明:垃圾收集使用的是并行收集

虚拟机参数:-Xlog:gc* -XX:+ExplicitGCInvokesConcurrent

[0.030s][info][gc,heap] Heap region size: 1M
[0.031s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.035s][info][gc           ] Using G1
[0.065s][info][gc           ] Periodic GC disabled
[0.169s][info][gc,start     ] GC(0) Pause Young (Concurrent Start) (System.gc())//使用并发收集
[0.170s][info][gc,task      ] GC(0) Using 3 workers of 8 for evacuation
[0.172s][info][gc,phases    ] GC(0)   Pre Evacuate Collection Set: 0.1ms
[0.172s][info][gc,phases    ] GC(0)   Merge Heap Roots: 0.1ms
[0.172s][info][gc,phases    ] GC(0)   Evacuate Collection Set: 1.3ms
[0.172s][info][gc,phases    ] GC(0)   Post Evacuate Collection Set: 0.4ms
[0.172s][info][gc,phases    ] GC(0)   Other: 0.4ms
[0.172s][info][gc,heap      ] GC(0) Eden regions: 2->0(13)
[0.172s][info][gc,heap      ] GC(0) Survivor regions: 0->1(3)
[0.172s][info][gc,heap      ] GC(0) Old regions: 0->0
[0.172s][info][gc,heap      ] GC(0) Archive regions: 0->0
[0.172s][info][gc,heap      ] GC(0) Humongous regions: 0->0
[0.172s][info][gc,metaspace ] GC(0) Metaspace: 603K(4864K)->603K(4864K) NonClass: 548K(4352K)->548K(4352K) Class: 55K(512K)->55K(512K)
[0.172s][info][gc           ] GC(0) Pause Young (Concurrent Start) (System.gc()) 2M->0M(128M) 2.465ms
[0.172s][info][gc,cpu       ] GC(0) User=0.00s Sys=0.00s Real=0.00s
[0.172s][info][gc           ] GC(1) Concurrent Cycle
[0.172s][info][gc,marking   ] GC(1) Concurrent Clear Claimed Marks
[0.172s][info][gc,marking   ] GC(1) Concurrent Clear Claimed Marks 0.015ms
[0.172s][info][gc,marking   ] GC(1) Concurrent Scan Root Regions
[0.173s][info][gc,marking   ] GC(1) Concurrent Scan Root Regions 1.103ms
[0.173s][info][gc,marking   ] GC(1) Concurrent Mark (0.173s)
[0.173s][info][gc,marking   ] GC(1) Concurrent Mark From Roots
[0.173s][info][gc,task      ] GC(1) Using 2 workers of 2 for marking
[0.174s][info][gc,marking   ] GC(1) Concurrent Mark From Roots 0.475ms
[0.174s][info][gc,marking   ] GC(1) Concurrent Preclean
[0.174s][info][gc,marking   ] GC(1) Concurrent Preclean 0.102ms
[0.174s][info][gc,marking   ] GC(1) Concurrent Mark (0.173s, 0.174s) 0.618ms
[0.174s][info][gc,start     ] GC(1) Pause Remark
[0.175s][info][gc           ] GC(1) Pause Remark 0M->0M(8M) 1.325ms
[0.175s][info][gc,cpu       ] GC(1) User=0.00s Sys=0.00s Real=0.00s
[0.175s][info][gc,marking   ] GC(1) Concurrent Rebuild Remembered Sets
[0.175s][info][gc,marking   ] GC(1) Concurrent Rebuild Remembered Sets 0.076ms
[0.176s][info][gc,start     ] GC(1) Pause Cleanup
[0.176s][info][gc           ] GC(1) Pause Cleanup 0M->0M(8M) 0.047ms
[0.176s][info][gc,cpu       ] GC(1) User=0.00s Sys=0.00s Real=0.00s
[0.176s][info][gc,marking   ] GC(1) Concurrent Cleanup for Next Mark
[0.176s][info][gc,marking   ] GC(1) Concurrent Cleanup for Next Mark 0.113ms
[0.176s][info][gc           ] GC(1) Concurrent Cycle 3.745ms
[0.177s][info][gc,heap,exit ] Heap
[0.177s][info][gc,heap,exit ]  garbage-first heap   total 8192K, used 932K [0x0000000081c00000, 0x0000000100000000)
[0.177s][info][gc,heap,exit ]   region size 1024K, 2 young (2048K), 1 survivors (1024K)
[0.177s][info][gc,heap,exit ]  Metaspace       used 608K, capacity 4531K, committed 4864K, reserved 1056768K
[0.177s][info][gc,heap,exit ]   class space    used 56K, capacity 402K, committed 512K, reserved 1048576K

说明:使用参数-XX:+ExplicitGCInvokesConcurrent后,G1使用并发收集

**********************************

禁用System.gc():垃圾收集器会自动判断垃圾收集,可用参数-XX:+DisableExplicitGC禁用System.gc()

public class Test {public static void main(String[] args){System.gc();}
}

********************

控制台输出

虚拟机参数:-Xlog:gc* -XX:+DisableExplicitGC

[0.024s][info][gc,heap] Heap region size: 1M
[0.024s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.028s][info][gc           ] Using G1
[0.054s][info][gc           ] Periodic GC disabled
[0.159s][info][gc,heap,exit ] Heap
[0.159s][info][gc,heap,exit ]  garbage-first heap   total 131072K, used 2048K [0x0000000081c00000, 0x0000000100000000)
[0.159s][info][gc,heap,exit ]   region size 1024K, 3 young (3072K), 0 survivors (0K)
[0.159s][info][gc,heap,exit ]  Metaspace       used 610K, capacity 4531K, committed 4864K, reserved 1056768K
[0.159s][info][gc,heap,exit ]   class space    used 55K, capacity 402K, committed 512K, reserved 1048576K

说明:System.gc()没有触发full gc

jvm System.gc()说明相关推荐

  1. JVM:gc什么时候开始?System.gc()能保证gc一定发生吗?

    gc什么时候开始? "你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?" 在什么时候: 1.新生代有一个Eden区和两个survivor区,首先将对象放入Ede ...

  2. JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用

    System.gc()的理解 在默认情况下,通过System.gc()或者Runtime. getRuntime ( ).gc ()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试 ...

  3. java+jvm+log_java9 gc log参数迁移

    序 本文主要研究一下java9 gc log参数的迁移. 统一JVM及GC的Logging java9引进了一个统一的日志框架,把gc相关的log输出及配置也给纳入进来了. 相关JEP(JDK Enh ...

  4. 深入理解JVM(2)——GC算法与内存分配策略

    说起垃圾收集(Garbage Collection, GC),想必大家都不陌生,它是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如Sca ...

  5. java的System.gc()的理解

    目录 什么是System.gc() 实例1 实例2 什么是System.gc() 1.在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发F ...

  6. System.gc()调用 - 适用的场景

    一.System.gc()调用 System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间.它将尝试释放被丢弃对象占用的内存.然而System.gc()调用附带一个免责 ...

  7. system.gc 性能_使用这些先进的GC技术提高应用程序性能

    system.gc 性能 应用程序性能是我们关注的重点,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开 ...

  8. 您需要了解的所有有关System.gc()的信息

    在本文中,我们试图回答有关System.gc()API调用的最常见问题. 我们希望它会有所帮助. 什么是System.gc()? System.gc()是用Java,Android,C#和其他流行语言 ...

  9. Java笔记-使用System.gc()进行内存回收

    这里注意是这样的,在某个项目里面有30多个java进程,100多个线程,运行30分钟后发现某个进程超级占用资源.第二天再去看的时候,整个系统的java进程占用内存都变小了. 身为C++程序员,对这种现 ...

  10. System.gc()与Object.finalize()的区别

    finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因 ...

最新文章

  1. nexus 4 下 DualBootInstallation 安装 ubuntu touch
  2. 与Andrey Breslav谈论Kotlin 1.0的发布
  3. 两个整数相加 相乘 有符号与无符号 溢出判断条件 移位与2的幂
  4. 深度学习和目标检测系列教程 12-300:常见的opencv的APi和用法总结
  5. iOS开发UI篇—懒载入
  6. Andorid Scrolling Activity(CoordinatorLayout详情)
  7. 什么都没学到,记录一个鼠标监听事件吧
  8. vue传递数组对象_详解vue组件三大核心概念
  9. 小程序优化的20中策略
  10. Win7中的clr_optimization服务
  11. 计算机网络2020秋--第四次测验
  12. 车牌识别:HyperLPR车牌识别代码解析
  13. Java防御目录穿越漏洞方法_WinRAR目录穿越漏洞复现及防御
  14. XML的注释踩坑记录
  15. wap2app是什么
  16. Python截屏工具,识别屏幕中的二维码
  17. du和df命令的区别
  18. 猿如意工具-【SwitchHosts】详情介绍
  19. 【9】前端实习:react audio播放音乐组件(详细完整代码)
  20. Python实现rosbag转换成video

热门文章

  1. 华为热设计工程师待遇_【华为上海研究所工资】热设计工程师待遇-看准网
  2. java怎样生成epub文件_如何使用java.util.zip进行epub
  3. 【NOIP提高组五校联考】挖金矿
  4. 使用winfrom调用BarTender实现标签的打印
  5. 在GEE平台提取Sentinel-1 SAR GRD的VV+VH波段
  6. 阿里云域名解析ip地址变更后不起作用
  7. 旋转矩阵的导数(机器人学)
  8. excel 第3讲:查找、替换与定位
  9. java求闰年_JAVA中怎么计算闰年
  10. V2VNet: Vehicle-to-Vehicle Communication for Joint Perception and Prediction