? ?
?
? ?
JVM垃圾回收,参数,强软弱虚,常见错误OOM,与微服务结合等---个人笔记四
?
? ?
?
?
?
?
?
?
?
? ? ?
?
?
?
?
?
一: 什么是垃圾回收?
程序运行必然需要申请内存资源,无效的对象会占有内存导致内存溢出.1.1:C/C++语言的垃圾回收通过delete释放内存资源1.2:java垃圾回收有自动垃圾回收机制(GC)
二 jvm模型
三:垃圾回收常见算法:
引用计数法,标记清除法,标记压缩法,复制算法,分代算法3.1:引用计数法特点:历史悠久原理:任何对一个对象的引用,这个对象引用计数器就+1,当没有被引用(计数器为0),就回收优点:~实时性高,一有0引用对象就回收~区域性,更新对象计数器只影响本对象,不扫描全部对象~垃圾回收过程中,无需挂起,申请内存不足抛OutOfMember异常缺点:~每次都需要更新计数器浪费性能~即使内存够还需运行计数器,浪费性能~无法解决循环引用问题(最大缺点):两个对象互相引用对方
可以做GC Roots的对象虚拟机栈中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI引用的对象(Native方法)
3.2标记清除法特点:~标记:从根节点开始标记引用的对象可达性分析~清除:未被标记引用的对象计算垃圾对象开始清除原理:当内存没有了,开始运行GC线程开始标记工作,从root对象可达的对象标记为存活对象.清理未被标记的对象.优点:~解决了循环引用的问题缺点:~效率低:标记和清除两个动作需要扫描全部对象~碎片化严重:被回收的对象可能位于内存的各个角落,被清理后的内存不连贯
3.3标记压缩算法特点:在标记清除算法基础上做了优化原理:当内存没有了,开始运行GC线程开始标记工作,从root对象可达的对象标记为存活对象.将存活对象压缩到内存的一端,并清理未被标记的对象.优点:~解决了循环引用问题~解决了标记清除算法的碎片化问题缺点:~对存活对象的移动影响性能
3.4复制算法原理:原内存空间被一分为二,每次只用一块,垃圾回收时,将还使用的对象复制到另一个空间,把这个空间清空过程:a.在GC开始时,对象只存在Eden区和名为From的Survivor区,名为To的Survivor区是空的b.GC开始执行,Eden区存活的对象都会被复制到To,而From区存活对象根据他们的年龄值决定去向(年龄值可以通过-XX:MaxTenuringThreshold设置),年龄达到一定值的对象区年老代,没有达到阈值的对象复制到Toc.GC完成后,Eden区和From区都被清空,然后From和To交换角色,保证名为To的Survivor是空的d.GC会一直重复次过程,直到To区满了,一旦满了将所有对象移动到年老代中.
优点:~垃圾越多效率越高~内存无碎片缺点:~垃圾越少,越不适用~内存使用率低(分配2块内存同一时刻只用一块)
3.5分代算法特点:根据垃圾回收对象的特点合理的选择算法比如:年轻代适合复制算法老年代适合标记清除或标记压缩算法
四:垃圾收集器
垃圾算法与垃圾收集器GC算法(引用计数/复制/标清/标压)是内存回收的方法论,垃圾收集器是算法的落地实现没有的完美的收集器,针对不同应用不同收集器**java -XX:PrintCommandLineFlags -version查看垃圾回收器 ** 详见后文java参数–查看垃圾收集器
Server模式,Client模式(基本不会用)32位操作系统(window)默认使用Client的jvm模式32位操作系统,2G内存同时2个cpu以上用Server模式,低于该配置还是Client模式64位only server模式
常见的垃圾收集器有:Serial串行垃圾收集器, -XX:+UseSerialGCParallel并行垃圾收集器, -XX:+UseParallelGC -XX:+UseParallelOldGC 默认CMS(并发)垃圾收集器, -XX:+UseConcMarkSweepGCG1垃圾收集器 -XX:+UseG1GC…详见下文:
4.1串行垃圾收集器UseSerialGC
特点:单线程进行垃圾回收原理:STW(Stop-The-World):垃圾回收时只有一个线程在工作,并且所有的java线程都要暂停等待垃圾回收完毕实现:配置JVM参数: -XX:+UseSerialGC开启后会使用 : Serial(Young区使用) + Seral Old(Old区使用) 的收集器组合表示: 新生代`老年代都会使用串行回收收集器, 新生代使用复制算法 老年代使用标记
您可能关注的文档
- SpringCloud微服务分布式系统文档.docx
- 中国人工智能应用趋势报告-新基建助推,人工智能应用迈入新阶段.docx
- Java并发程序设计教程及知识点总结.docx
- ESASNAP中超分(SuperResolution)模块处理Sentinel-2数据效果图.docx
- Java微服务架构实战:SpringBoot+SpringCloud+Docker+RabbitMQ.docx
- 借势新基建,智慧物流中的AI硬核必杀技.docx
- AM5728工业PC工业平板运动控制解决方案.docx
- MYSQL性能优化与Mysql数据库结构设计.docx
- 华为数据之道学习分享.docx
- 微服务的监控.docx
- 【银河专题】如何看待豆粕内外价差关系.pdf
- 工业5.0指数:国家如何重塑2025年的经济进步.docx
- 【蔚云科技】亚马逊【扫地机器人】行业消费者洞察报告.docx
- 青海大通县朔山中学2025-2026学年高三下学期开学考试政治+答案.docx
- 青海大通县朔山中学2025-2026学年高三下学期开学考试英语+答案.docx
- 东北师大附中2025届高三下学期期初考试-英语试题+答案.pdf
- 广东省汕头市2024-2025学年高三下学期第一次模拟考试政治试题(含答案).docx
- KPMG -欧洲数字产品护照 European Digital Product Passport.pdf
- 腾讯安全沙龙:后渗透新维度:利用Chrome插件后门实现持久化与凭据窃听.pdf
- 可持续发展报告调查:2025年结果.docx
原创力文档

文档评论(0)