
jvm
希望之光芒
风一样的速度,风一样的自由
展开
-
JVM—8—垃圾回收器
文章目录 一.GC分类与性能指标 1.垃圾收集器分类 按线程数分 按工作模式分 按碎片处理方式分 2.评估GC的性能指标 3.性能指标:吞吐量 4.性能指标:暂停时间 5.吞吐量vs暂停时间 二.Serial回收器:串行回收 1.解析 2.总结 三.Parallel回收器:吞吐量优先 1.解析 2.参数配置 四.ParNew回收器:并行回收 五.CMS回收器:低延迟 1.解析 2.CMS为什么不使用标记整理转载 2022-04-18 14:37:40 · 2284 阅读 · 0 评论 -
JVM: G1和CMS的区别
实现 有人会好奇为什么标记清理算法会产生内存碎片!但是CMS仍采用这种算法呢? 答案是:CMS是Concurrent-Mark-Sweep的缩写,并发的标记与清除,老年代回收算法,CMS作为第一款实现用户线程和收集线程并发执行的收集器!当时的设计理念是减少停顿时间,最好是能并发执行!但是问题来了,如要用户线程也在执行,那么就不能轻易的改变堆中对象的内存地址!不然会导致用户线程无法定位引用对...转载 2019-12-02 17:33:04 · 216 阅读 · 0 评论 -
新生代Eden与两个Survivor区的解释
聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域...转载 2019-12-02 17:01:19 · 177 阅读 · 0 评论 -
关于Minor GC和Major GC的理解
此篇文章不是原创,内容来自于《深入理解java虚拟机》。仅作笔记使用。如有错误之处,请不吝指正,谢谢。 在介绍之前,首先简单说一下堆内存的结构 堆内存在大的结构上分为:年轻代和年老代。其中年轻代又分为Eden区和Survivor区。Survivor区又分为两个相等的区域,一个是fromspace区,另外一个是tospace区。年轻代内存=Eden+其中一个Survivor区,也就是说两个Surv...转载 2019-11-11 01:40:11 · 743 阅读 · 0 评论