043、JVM实战总结:动手实验,自己动手模拟出频繁Young GC的场景
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的场景相关推荐
- jvm性能调优实战 - 32一个10万并发的BI系统,如何定位和解决频繁Young GC问题?
文章目录 Pre 模拟代码的JVM参数设置 示例Code 如何在windows上执行命令? 通过jstat观察程序的运行状态 Pre jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Y ...
- 050、JVM实战总结:动手实验:使用 jstat 摸清线上系统的JVM运行状况
jstat详细信息,参考:jstat - Java Virtual Machine Statistics Monitoring Tool 1.前文回顾 对象优先在Eden区分配,Young GC的触发 ...
- 046、JVM实战总结:动手实验:自己动手模拟出对象进入老年代的场景体验一下(下)
本文是<从 0 开始带你成为JVM实战高手>内容总结,版权问题,特此声明.详细内容: 如果购买,成功后加QQ群找群主返现10元
- 031、jvm实战总结:动手实验:线上系统部署如果采用G1垃圾回收器,应该如何设置参数?
1.前文回顾 1.G1中有新 .老.大三种Region 2.新生代回收条件:新生代Eden区满的时候 3.新生代GC仍然采用复制算法 4.控制停顿时间,对Region进行挑选回收 5.进入老年的条件 ...
- 045、JVM实战总结:动手实验:自己动手模拟出对象进入老年代的场景体验一下(上)
1.前文回顾 略.. 2.动态年龄判定规则 进入老年代的4个时机:1.年龄到了 2.动态年龄判断 3.Survivor 放不下 4.大对象(G1例外) 动态年龄判断:Young GC时,新对象(1岁) ...
- 024、JVM实战总结:动手实验:线上部署系统时,如何设置垃圾回收相关参数?
1.前文回顾 CMS采用了4个阶段来垃圾回收:初始标记(STW).并发标记.重新标记(STW).并发清理 2.并发回收垃圾导致CPU资源紧张 并发标记和并发清理两个最耗时的阶段,垃圾回收线程和系统工作 ...
- 010 、JVM实战总结: 动手实验:亲自感受一下线上系统部署时如何设置JVM内存大小
1.前文回顾 新生代里内存不够了,就会触发一次Minor GC,当他成为是十多岁的"老年人"的时候,就会被转移到老年代里去 2.跟JVM内存相关的几个核心参数图解 ...
- 亚马逊云科技 Build On 2022 - 参加一场动手实验是怎样一种体验?
本篇文章是我参与亚马逊云科技build on的实验心得,比较简略,此文写给想尝试参加动手实验,或者不清楚参加动手实验对个人成长有什么帮助的朋友. Build On是什么? 亚马逊云科技开发者Build ...
- Windows 8 动手实验系列教程 实验8:Windows应用商店API
动手实验 实验 8: Windows应用商店API 2012年9月 简介 编写Windows应用商店应用最令人瞩目的理由之一是您可以方便地将它们发布到Windows应用商店.考虑到世界范围内目前有超过 ...
最新文章
- Java Jar包的压缩、解压使用指南
- 阿里敏捷教练:多团队开发一个产品的组织设计和思考
- 微软hackathon_Hackathon报告:30小时内您可以编写什么代码? 非常多!
- 线程数究竟设多少合理
- C/C++(C++返回对象与应用区别,类成员的存储)
- Matlab 2016a 安装教程
- 《ARM64体系结构编程与实践》开始预订了
- Swift游戏实战-跑酷熊猫 03 熊猫跑动动画
- QT txt读写—论坛体编辑器
- Android破解九宫格密码
- java培训班值得去吗?
- 如何评价 2021 考研政治题,难度如何?
- CPU漏洞修复工具下载,专门针对“Meltdown”(融化)和“Spectre”(幽灵)两组CPU漏洞,360安全卫士国内首发免疫工具
- java小游戏2048实现
- 计算机跨考应用经济学,计算机专业跨考人大经济学复习经验谈br /
- 思维:分析框架化,模型化
- 事后诸葛亮--Alpha版本总结
- 微信和QQ都能正常上网,但网页不能上网的3种解决办法。
- cfa的pv怎么用计算机算,CFA考点解析:如何用计算器Amort键计算interest rate
- 苏超 计算机系 南京大学,中国大学两院院士数量排名,看看谁的科研实力最强...
热门文章
- log4j在web中的使用
- ppt怎么一次性改全部字体_PPT的字体怎么选择?
- mysql php pdo 迭代器_php – 创建PDO迭代器
- 深圳市龙岗职业技术学校录取分数线计算机,深圳市龙岗区第二职业技术学校2021年招生录取分数线...
- 埃氏筛法(求n以内有多少个素数)
- gdal for java_gdal java环境配置
- Excel 中的日期格式变成时间戳
- MySql字符串与时间日期之间的的转换
- columns列:Rows 工作表上所有的行
- 基于SpringBoot 2.3的WebService指南(包含案例)