那么我们该怎么进行调优呢:
- 最简单的方法就是适当扩大新生代空间即可
- 新生代不易太?。喝绻律【突岬贾虏欢戏⑸鷐inor GC浪费时间,且幸存区过小导致无用数据都存入老年代
- 新生代不易太大:如果新生代过大相对老年代空间变?。?容易发生Full GC , Full GC的运行时间过长
- 新生代能容纳所有[并发量*(请求-响应)]的数据
- 当前活跃对象:并不应该晋级到老年代,只是目前阶段需要使用的内存数据
- 需要晋升对象:我们一直使用的内存数据,需要传递到老年代
- 如果幸存区过?。突岬贾滦掖媲萏崆敖氲嚼夏甏?/li>
- 但如果是当前活跃对象进入到老年代,既不能发挥作用,并且也难以排出老年代
- 设置一定规格的晋升标准,防止部分当前活跃对象进入到老年代,理由同上
- 首先CMS老年代内存越大越好
- 其次在不做调优的情况下,如果没有发生Full GC就不需要调优了,否则优先调优新生代
- 如果经常发生Full GC,我们就需要将老年代空间增大了,官方推荐增大目前老年代空间大小的1/4~1/3即可
- Full GC和Minor GC频繁
/*主要是因为新生代空间不足因为新生代空间不足 , 经常发生minor GC,同时幸存区空间不足导致大量数据直接进入到老年代,最后导致老年代也产生Full GC*/
- 请求高峰期发生 Full GC,单次暂停时间特别长 (CMS)
/*首先我们已经直到是CMS的垃圾回收方法我们在之前的学习中得知Full GC主要分为三个阶段:初始标记,并发标记,重新标记在请求高峰期期间,数据较多,我们的重新标记由于需要重新扫描所有数据空间,所以会导致单次暂停时间长我们只需要保证在进行重新扫描前先进行一次Minor GC消除掉无用数据就可以加快暂停速度:-XX:+CMSScavengeBeforeRemark*/
- 老年代充裕情况下,发生 Full GC (CMS jdk1.7)
/*首先我们需要注意是jdk1.7版本在1.7版本是由永久代负责管理方法区以及常量池,如果永久代内存满了也会产生Full GC所以我们只需要增加永久代的内存大小即可*/
结束语到这里我们JVM的垃圾回收篇就结束了 , 希望能为你带来帮助~附录该文章属于学习内容,具体参考B站黑马程序员满老师的JVM完整教程
这里附上视频链接:01_垃圾回收概述_哔哩哔哩_bilibili
【JVM学习笔记——垃圾回收篇】
推荐阅读
- 黑莓q5用安装微信的方法a 用黑莓自带的印象笔记手敲的 看不懂的宝宝们在私聊我吧
- JVM学习笔记——内存结构篇
- 【lwip】08-ARP协议一图笔记及源码实现
- 小米笔记本Pro15增强版评测_小米笔记本Pro15增强版评测表现
- 用一台笔记本电脑如何赚钱(笔记本电脑赚钱的办法)
- 四 【单片机入门】应用层软件开发的单片机学习之路-----ESP32开发板PWM控制电机以及中断的使用
- 笔记本电脑CF中烟雾头怎么调(win10cf新版本烟雾保护头怎么调)
- 笔记本电脑配置高低怎么区分(笔记本电脑看什么配置判断好坏)
- pytorch、paddlepaddle等环境搭建 深度学习环境搭建常用网址、conda/pip命令行整理
- 三十九 Java开发学习----SpringBoot整合mybatis