avatar
文章
31
标签
24
分类
9
主页
归档
目录
标签
Logo冰红茶怪兽ZGC
搜索
主页
归档
目录
标签

ZGC

发表于2025-03-04|更新于2025-03-12|Java
|总字数:0|阅读时长:1分钟|浏览量:
文章作者: fms231
文章链接: https://fms231.github.io/Java/JVM/ZGC/302d1df29f84/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 冰红茶怪兽!
JVM
上一篇
G1
G1 总览G1 的主要关注点在于达到可控的停顿时间,在这个基础上尽可能提高吞吐量。G1和CMS相同,都属于并发收集器,在大部分的收集阶段都不需要挂起应用程序。区别在于,G1 没有 CMS 的碎片化问题(或者说不那么严重),同时提供了更加可控的停顿时间。如果应用使用了较大的堆(6GB及以上),而且还要求有较低的垃圾收集停顿时间(0.5),那么G1是一个很好的选择。首先是内存划分上,之前介绍的分代收集器将整个堆分为年轻代、老年代和永久代,每个代的空间是确定的。而 G1 将整个堆划分为一个个大小相等的小块(每一块称为一个 region),每一块的内存是连续的。和分代算法一样,G1 中每个块也会充当 Eden、Survivor、Old 三种角色,但是它们不是固定的,这使得内存使用更加地灵活。执行垃圾收集时,和 CMS 一样,G1 收集线程在标记阶段和应用程序线程并发执行,标记结束后,G1 也就知道哪些区块基本上是垃圾,存活对象极少,G1 会先从这些区块下手,因为从这些区块能很快释放得到很大的可用空间,这也是为什么 G1 被取名为Garbage-First的原因。 在 G1...
下一篇
三色标记法
首先了解一下三色标记法的三种颜色: 白色:表示对象尚未被垃圾收集器访问过。显然在可达性分析刚刚开始的阶段,所有的对象都是白色的,若在分析结束的阶段,仍然是白色的对象,即代表不可达。 黑色:表示对象已经被垃圾收集器访问过,且这个对象的所有引用都已经扫描过。黑色对象代表已经扫描过,它是安全存活的,如果有其他对象引用指向了黑色对象,无须重新扫描一遍。黑色对象不可能直接(不经过灰色对象)指向某个白色对象。 灰色:表示对象已经被垃圾收集器访问过,但这个对象上至少存在一个引用还没有被扫描过 根据可达性分析算法,从GC Root开始进行遍历,然后就可以知道哪些对象是存活的,哪些对象是不可达的(需要被垃圾回收的)。GC...
相关推荐
2025-03-04
G1
G1 总览G1 的主要关注点在于达到可控的停顿时间,在这个基础上尽可能提高吞吐量。G1和CMS相同,都属于并发收集器,在大部分的收集阶段都不需要挂起应用程序。区别在于,G1 没有 CMS 的碎片化问题(或者说不那么严重),同时提供了更加可控的停顿时间。如果应用使用了较大的堆(6GB及以上),而且还要求有较低的垃圾收集停顿时间(0.5),那么G1是一个很好的选择。首先是内存划分上,之前介绍的分代收集器将整个堆分为年轻代、老年代和永久代,每个代的空间是确定的。而 G1 将整个堆划分为一个个大小相等的小块(每一块称为一个 region),每一块的内存是连续的。和分代算法一样,G1 中每个块也会充当 Eden、Survivor、Old 三种角色,但是它们不是固定的,这使得内存使用更加地灵活。执行垃圾收集时,和 CMS 一样,G1 收集线程在标记阶段和应用程序线程并发执行,标记结束后,G1 也就知道哪些区块基本上是垃圾,存活对象极少,G1 会先从这些区块下手,因为从这些区块能很快释放得到很大的可用空间,这也是为什么 G1 被取名为Garbage-First的原因。 在 G1...
2025-03-05
GC调优
常用参数-Xms -Xmx :堆内存大小-XX:NewSize -XX:MaxNewSize:新生代,young 区-XX:NewRatio :新生代 和 old 区的一个比例-XX:MaxSurvivorRatio :Eden 区和 Survivor 区的比例-XX:MetaspaceSize -XX:MaxMetaspaceSize :Metaspace 大小-XX:UseCompressedClassPointers:是否启用压缩的类指针-XX:CompressedClassSpaceSize:设置类压缩占用空间-XX:InitialCodeCacheSize:CodeCache 初始大小-XX:ReservedCodeCacheSize:CodeCache 最大大小 打印日志相关参数打印时间-XX:+PrintGCTimeStamps时间相关:针对 GC 开始的时间-XX:+PrintGCDateStamps...
2025-03-05
基于JDK命令行工具的监控
JVM参数类型标准参数在各个JVM版本中基本不变,相对稳定 12# 查看jdk版本java -version X参数:非标准化参数在各个版本中有可能会发生变化,相对稳定 123456# -Xint:解释执行java -Xint -version# -Xcomp:第一次使用就编译成本地代码java -Xcomp -version# -Xmixed:混合模式,JVM自己决定是否编译成本地代码java -Xmixed -version XX参数:非标准化参数,主要用于 JVM 调优和 Debug Boolean类型123# -XX:[+/-]<name> 表示启用或者禁用name属性,+表示启用,-表示禁用-XX:+UseConcMarkSweepGC-XX:-UseG1GC 非Boolean类型123456# -XX:<name>=<value> 表示设置name属性的值-XX:MaxGCPauseMillis=500-XX:GCTimeRatio=19# 也存在缩写版本,看上去是X参数,其实是XX参数# -Xmx:最大堆内存 对应...
2025-03-04
三色标记法
首先了解一下三色标记法的三种颜色: 白色:表示对象尚未被垃圾收集器访问过。显然在可达性分析刚刚开始的阶段,所有的对象都是白色的,若在分析结束的阶段,仍然是白色的对象,即代表不可达。 黑色:表示对象已经被垃圾收集器访问过,且这个对象的所有引用都已经扫描过。黑色对象代表已经扫描过,它是安全存活的,如果有其他对象引用指向了黑色对象,无须重新扫描一遍。黑色对象不可能直接(不经过灰色对象)指向某个白色对象。 灰色:表示对象已经被垃圾收集器访问过,但这个对象上至少存在一个引用还没有被扫描过 根据可达性分析算法,从GC Root开始进行遍历,然后就可以知道哪些对象是存活的,哪些对象是不可达的(需要被垃圾回收的)。GC...
avatar
fms231
运气
文章
31
标签
24
分类
9
Follow Me
公告
记录所学的内容
搜索
数据加载中