1、前文回顾 - 之前讲原理,本周讲GC日志

2、程序的JVM参数示范 - 见3

3、如何打印出JVM GC日志?

-XX:NewSize=5242880 -XX:MaxNewSize=5242880 -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:SurvivorRatio=8

-XX:PretenureSizeThreshold=10485760 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

-Xloggc:gc.log

注意:设置了-Xloggc 后-XX:+PrintGCDetails就不生效了

4、示例程序代码

5、对象是如何分配在Eden区内的 - 见思考题

6、采用指定JVM参数运行程序

-Xloggc:d:/gc.log ,查看日志d:/gc.log

idea:

命令行:

java com.yh.stu.jvm.zero2master._43YoungGC -Xms10m -XX:NewSize=5242880
-XX:MaxNewSize=5242880 -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760
-XX:PretenureSizeThreshold=10485760 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:SurvivorRatio=3 -Xloggc:gcd.log

7、今日思考题

这次Young GC到底是如何运行的?

思考题回答:

参数设置:

参数设置了堆大小为10M,指定了新生代5M ,那么老年代也是5M,因为SurvivorRatio=8,所以Eden区4M,S1、S2分别是0.5M。

 GC前的空间分配及判断:

先分配了3次1M对象进入Eden区,再次分配2M时,Eden区放不下了,准备进行Young GC,此时需要判断是否需要空间担保,5M的老年代空余>3M的新生代已用空间,不需要空间担保。直接进行Young GC。

执行Young GC:

遍历所有线程栈中的和静态的引用变量,进行GCRoots追踪,发现新生代的Eden和S1区没有对象存活,不需要进行对象的拷贝,直接清空Eden区和S1区。此时YoungGC执行完成。

本文是《从 0 开始带你成为JVM实战高手》内容总结,版权问题,特此声明。详细内容:

购买成功后找我返现10元

043、JVM实战总结:动手实验,自己动手模拟出频繁Young GC的场景相关推荐

  1. jvm性能调优实战 - 32一个10万并发的BI系统,如何定位和解决频繁Young GC问题?

    文章目录 Pre 模拟代码的JVM参数设置 示例Code 如何在windows上执行命令? 通过jstat观察程序的运行状态 Pre jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Y ...

  2. 050、JVM实战总结:动手实验:使用 jstat 摸清线上系统的JVM运行状况

    jstat详细信息,参考:jstat - Java Virtual Machine Statistics Monitoring Tool 1.前文回顾 对象优先在Eden区分配,Young GC的触发 ...

  3. 046、JVM实战总结:动手实验:自己动手模拟出对象进入老年代的场景体验一下(下)

    本文是<从 0 开始带你成为JVM实战高手>内容总结,版权问题,特此声明.详细内容: 如果购买,成功后加QQ群找群主返现10元

  4. 031、jvm实战总结:动手实验:线上系统部署如果采用G1垃圾回收器,应该如何设置参数?

     1.前文回顾 1.G1中有新 .老.大三种Region 2.新生代回收条件:新生代Eden区满的时候 3.新生代GC仍然采用复制算法 4.控制停顿时间,对Region进行挑选回收 5.进入老年的条件 ...

  5. 045、JVM实战总结:动手实验:自己动手模拟出对象进入老年代的场景体验一下(上)

    1.前文回顾 略.. 2.动态年龄判定规则 进入老年代的4个时机:1.年龄到了 2.动态年龄判断 3.Survivor 放不下 4.大对象(G1例外) 动态年龄判断:Young GC时,新对象(1岁) ...

  6. 024、JVM实战总结:动手实验:线上部署系统时,如何设置垃圾回收相关参数?

    1.前文回顾 CMS采用了4个阶段来垃圾回收:初始标记(STW).并发标记.重新标记(STW).并发清理 2.并发回收垃圾导致CPU资源紧张 并发标记和并发清理两个最耗时的阶段,垃圾回收线程和系统工作 ...

  7. 010 、JVM实战总结: 动手实验:亲自感受一下线上系统部署时如何设置JVM内存大小

    1.前文回顾         新生代里内存不够了,就会触发一次Minor GC,当他成为是十多岁的"老年人"的时候,就会被转移到老年代里去 2.跟JVM内存相关的几个核心参数图解 ...

  8. 亚马逊云科技 Build On 2022 - 参加一场动手实验是怎样一种体验?

    本篇文章是我参与亚马逊云科技build on的实验心得,比较简略,此文写给想尝试参加动手实验,或者不清楚参加动手实验对个人成长有什么帮助的朋友. Build On是什么? 亚马逊云科技开发者Build ...

  9. Windows 8 动手实验系列教程 实验8:Windows应用商店API

    动手实验 实验 8: Windows应用商店API 2012年9月 简介 编写Windows应用商店应用最令人瞩目的理由之一是您可以方便地将它们发布到Windows应用商店.考虑到世界范围内目前有超过 ...

最新文章

  1. Java Jar包的压缩、解压使用指南
  2. 阿里敏捷教练:多团队开发一个产品的组织设计和思考
  3. 微软hackathon_Hackathon报告:30小时内您可以编写什么代码? 非常多!
  4. 线程数究竟设多少合理
  5. C/C++(C++返回对象与应用区别,类成员的存储)
  6. Matlab 2016a 安装教程
  7. 《ARM64体系结构编程与实践》开始预订了
  8. Swift游戏实战-跑酷熊猫 03 熊猫跑动动画
  9. QT txt读写—论坛体编辑器
  10. Android破解九宫格密码
  11. java培训班值得去吗?
  12. 如何评价 2021 考研政治题,难度如何?
  13. CPU漏洞修复工具下载,专门针对“Meltdown”(融化)和“Spectre”(幽灵)两组CPU漏洞,360安全卫士国内首发免疫工具
  14. java小游戏2048实现
  15. 计算机跨考应用经济学,计算机专业跨考人大经济学复习经验谈br /
  16. 思维:分析框架化,模型化
  17. 事后诸葛亮--Alpha版本总结
  18. 微信和QQ都能正常上网,但网页不能上网的3种解决办法。
  19. cfa的pv怎么用计算机算,CFA考点解析:如何用计算器Amort键计算interest rate
  20. 苏超 计算机系 南京大学,中国大学两院院士数量排名,看看谁的科研实力最强...

热门文章

  1. log4j在web中的使用
  2. ppt怎么一次性改全部字体_PPT的字体怎么选择?
  3. mysql php pdo 迭代器_php – 创建PDO迭代器
  4. 深圳市龙岗职业技术学校录取分数线计算机,深圳市龙岗区第二职业技术学校2021年招生录取分数线...
  5. 埃氏筛法(求n以内有多少个素数)
  6. gdal for java_gdal java环境配置
  7. Excel 中的日期格式变成时间戳
  8. MySql字符串与时间日期之间的的转换
  9. columns列:Rows 工作表上所有的行
  10. 基于SpringBoot 2.3的WebService指南(包含案例)