提醒大家复习时,只看标题进行回想并尝试回答,然后再看内容。
1、前文回顾
前5周分析了JVM核心原理、出现GC的问题情形。
2、基于JVM运行的系统最怕什么?
STW 造成的卡顿问题
3、年轻代gc到底多久一次对系统影响不大?
多久一次需要根据业务来定。年轻代gc对系统影响大不大?相对于FullGC,对系统影响是不大的。因为存活对象少,意味着追踪和复制的就少
4、什么时候新生代gc对系统影响很大?
系统部署部署在大内存机器上,给你的应用分配了几十个G,同时负载很高情况下(比如每秒几万请求),这时积压的请求多,大量存活,导致回收时间长
5、如何解决大内存机器的新生代GC过慢的问题?
G1垃圾回收器,G1天生就适合这种大内存机器的JVM运行,可以完美解决大内存垃圾回收时间过长的问题。
6、要命的频繁老年代gc问题
三个进入老年代的条件:1、年龄大 2、动态年龄判断 3、Survivor放不下 重点关注2和3。所以要按照之前说的,估算内存模型,合理分配内存Eden,Survivor区(SurvivorRatio参数)
7、JVM性能优化到底在优化什么?
总的原则:合理配置分配内存,让短命对象在新生代就被回收,让长期存活的早点进入老年代(别再新生代复制来复制去)
本文是《从 0 开始带你成为JVM实战高手》内容总结,版权问题,特此声明。想学习老师专栏的同学可以扫描二维码:
购买成功后找我返现10元