在上一篇文章中,我们通过代码运行结果,查看到JVM的堆内存逻辑上分区是三部分,物理上分区是2部分,以及是新生代分区三部分,占比分布是8/1/1。而且我们还通过代码和堆JVM参数配置,制造出了OOM异常。下面我们就来分析GC回收器的日志信息。

先来看看,OOM后,GC详细日志信息:

新生区的伊甸园区GC日志分析

新生区的Eden区的GC,叫法:GC或者是YGC或者是MinorGC或者是轻GC

我们复制一条来分析:

[GC (Allocation Failure①) [PSYoungGen: 1877K②->472K③(2048K④)] 3697⑤K->2835K⑥(7680K⑦), 0.0010223⑧ secs] [Times: user=0.00⑨ sys=0.00⑩, real=0.00 secs]

分段说明:

  1. :GC的类型;

  2. :YongGC前新生代的内存占用量

  3. :YoungGC后新生代的内存占用量;

  4. :新生代总内存大小;

  5. :YoungGC前JVM堆内存占用量;

  6. :YoungGc后JVM堆内存使用量;

  7. :JVM堆内存总大小;

  8. :YoungGC耗时

  9. :YoungGC用户耗时;

  10. :YoungGC系统耗时

  11. :YoungGC实际耗时

年老代GC日志分析:

年老代GC的叫法:Full GC或者FGC或者MajorGC或者重GC

同样,我们拿出OOM之前的一条GC日志进行分析

[Full GC (Ergonomics①) [PSYoungGen②: 96K③->0K④ (2048K⑤)] [ParOldGen⑥: 5094K⑦->4007K⑧ (5632K⑨)] 5190K⑩->4007K十一 (7680K十二), [Metaspace十三: 3314K十四 ->3314K 十五(1056768K十六)], 0.0074234 secs十七] [Times: user=0.08十八 sys=0.01十九, real=0.01 secs二十]:

标志说明:

  1. :GC类型

  2. :Young区

  3. :GC前Young区内存占用

  4. :GC后Young区内存占用

  5. :Young区总大小

  6. :Old区

  7. :GC前Old区内存占用

  8. :GC后Old区内存占用

  9. :Old区总大小

  10. :GC前堆内存占用

  11. :GC后堆内存占用

  12. :JVM堆内存总大小

  13. :元空间区

  14. :GC前占用内存

  15. :GC后占用内存

  16. :元空间总大小

  17. :GC耗时

  18. :用户耗时

  19. :系统耗时

  20. :实际耗时

如下图:

接下来,我们继续学习的是JVM垃圾回收的四种算法了。欢迎大家和凯哥(凯哥Java:kaigejava)继续一起学习:引用计数算法、复制算法、标记清除、标记压缩这四种算法。

JVM笔记九-GC收集器日志信息学习的更多相关文章

  1. JVM GC系列 — GC收集器

    一.前言 前文学习了各种GC回收算法,掌握了GC回收的原理,但是真正的GC实现却尤为复杂,本篇文章将主要介绍各种GC收集器. 目前主流的HotSpot VM支持多种虚拟机,这些虚拟机也体现了GC的发展 ...

  2. A7. JVM 垃圾回收收集器(GC 收集器)

    [概述] 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现.Java 虚拟机规范中对垃圾收集器应该如何实现没有任何规定,因此不同的厂商.不同版本的虚拟机所提供的垃圾处理器都可能会 ...

  3. 学习JVM--垃圾回收(二)GC收集器

    1. 前言 在上一篇文章中,介绍了JVM中垃圾回收的原理和算法.介绍了通过引用计数和对象可达性分析的算法来筛选出已经没有使用的对象,然后介绍了垃圾收集器中使用的三种收集算法:标记-清除.标记-整理.标 ...

  4. JDK1.7 Update14 HotSpot虚拟机GC收集器

    在测试服务器上使用如下命令可以查看当前使用的 GC收集器,当然不止这一个命令可以看到,还有其他一些方式 第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了 [csii@ ...

  5. 【JVM】-NO.110.JVM.1 -【GC垃圾收集器】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  6. GC收集器种类

    转载:https://wangkang007.gitbooks.io/jvm/content/la_ji_shou_ji_qi.html 收集器 1.1 Serial(串行)收集器 Serial收集器 ...

  7. java虚拟机学习总结之GC回收算法与GC收集器

    GC回收算法 1.标记清除算法分为标记阶段和清除阶段标记阶段:通过特定的判断方式找出无用的对象实例并将其标记清除阶段:将已标记的对象所占用的内存回收缺点:运行多次以后容易产生空间碎片,当需要一整段连续 ...

  8. Java垃圾收集器——Parallel、G1收集器日志分析及性能调优示范

    开发过程中,经常需要对GC的垃圾收集器参数不断的进行动态调整,从而更充分的压榨机器性能,提升应用效率.本文将从常见的Parallel/G1垃圾收集器的GC日志着手,分析GC日志的具体含义,以及示范如何 ...

  9. GC收集器

    新生代收集器 Serial New 单线程收集器,工作时必须暂停其他线程: 简单高效,没有线程交互开销: 基于复制算法: Parallel New 对Serial的改进,多线程: CPU数量<4 ...

  10. 深入理解java虚拟机笔记Chapter3-垃圾收集器

    垃圾收集器 垃圾收集(Garbage Collection,GC),它的任务是解决以下 3 件问题: 哪些内存需要回收? 什么时候回收? 如何回收? 本节补充知识: ① s:Survivor区 新生代 ...

随机推荐

  1. [golang]在Gin框架中使用JWT鉴权

    什么是JWT JWT,全称 JSON Web Token,是一种开放标准(RFC 7519),用于安全地在双方之间传递信息.尤其适用于身份验证和授权场景.JWT 的设计允许信息在各方之间安全地. co ...

  2. P9196 题解

    来一份线性时间的题解. 考虑先解决前缀限制,显然可以直接把字符串和询问全部搬到 Trie 树上,问题就变成了查询一个子树内满足后缀限制的字符串数量. 接着考虑 Trie 树合并,具体地,把后缀限制以及 ...

  3. Nginx负载配置

    目录 Nginx 负载均衡笔记 1. 概述 1.1 Nginx 简介 1.2 负载均衡概述 2. 四层负载均衡(传输层) 2.1 工作原理 2.2 特点 2.3 优缺点 优点 缺点 2.4 示例场景 ...

  4. C#使用SendMessage进行进程间通讯

    最近公司有个需求是,拖动文件到桌面图标上,自动打开文件.那么只需在OnStartup事件中通过StartupEventArgs获取文件名然后进行操作即可.操作之后发现当软件已经启动了(单例运行),那么 ...

  5. Vscode控制台乱码的最终解决方案

    Vscode控制台乱码的最终解决方案 vscode运行项目时控制台打印日志乱码.网上也有许多解决办法. 方法一[管用]推荐,避免过多设置 Java项目时,像Springboot微服务项目默认使用的是l ...

  6. 产品探秘:智影AI——你的创意视频制作神器!

    只需3步,把小说变成视频.免费试用,首次注册赠送600积分. https://icomicai.com/ 在这个快节奏的时代,创意与效率并重成为了我们追求的新风尚.今天,就让我带你一起揭秘一款颠覆传统 ...

  7. element-plus如何隐藏el-row

    在 Element Plus 中,el-row 是用于布局的组件,如果你想要隐藏 el-row,你可以使用 CSS 的 display 属性将其设置为 none.以下是一个简单的示例: <tem ...

  8. TIER 0: Redeemer

    TIER 0: Redeemer Redis Remote Dictionary Server 是一个开源的内存数据存储系统 Redis 是完全基于 内存,"内存"数据库的数据检索 ...

  9. 那些血淋淋的教训——math

    1. 方程的解要写 x= 2023.12.10 晚上周测填空题第 \(2\) 题,方程的解写成了 \(7\) 而不是 \(x=7\). 2. 分类讨论 选填的最后一题. 3. 去绝对值看清楚符号(某个 ...

  10. OpenGL book note

    OpenGL Shading language 4.0vertex shader geometry shader: 格式解释 https://blog.csdn.net/hankern/article ...