文章参考视频链接:
马士兵JVM全套视频详解
此文章链接:https://blog.csdn.net/wuyuanshun/article/details/129438956
没任何应用指向的一个对象或者多个对象(循环引用)
单个对象没有被使用
多个对象循环引用没有被使用
引用计数(不能解决循环引用)
根可达算法
标记清除算法(位置不连续,产生碎片)
拷贝算法(没有碎片;浪费空间)
标记压缩 (没有碎片;效率偏低)(标记垃圾、压缩整理;让内存连续;效率比较低-线程同步)
部分垃圾回收器使用的模型(新生代、老年代、永久代(1.7))
新生代+老年代+永久代(1.7)/元数据区(1.8)Metaspace
新生代=Edan+2survivor区
老年代
GC Tuning(Generration)
1.8默认的垃圾回收器 :PS+ParallelOld
垃圾器发展路线,是随着内存越来越大的过程演进
从分代算法演进到不分代算法
Serial算法 几十兆
parallel算法 几个G
CMS几十个G -承上启下,开始并发回收
G1 上百G内存 - 逻辑分代,物理不分代
ZGC - ColoredPointers — 4T - 逻辑物理都不分代
Epsilon - 啥也不干(调试,确认不用GC参与就能干完活儿)
1.熟悉业务场景(没有最好的回收器,只有最合适的垃圾回收器)
2.选择回收器组合
3.计算内存需求(经验值1.5G 16G)
4.选定CPU(越高越好)
5.设定年代大小、升级年龄
6.设定日志参数
7.观察日志情况
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
链接: arthas命令列表
此文章链接:https://blog.csdn.net/wuyuanshun/article/details/129438956
java虚拟机-JVM入门+JVM调优实战+垃圾回收算法+JVM常见参数总结
文章参考视频链接:
马士兵JVM全套视频详解