建设监督网站首页,优秀的营销策划案例,在哪个彩票网站是小黄人做头像的,计算机动态网站建设九.JAVA知识点全面总结9:JVM调优
1.JVM内存结构
2.对象的创建
3.垃圾回收机制
4.JVM调优
未更新
未更新
九.JAVA知识点全面总结9:JVM调优
1.JVM内存结构
①堆
存放对象实例内存区域 新生代(Eden,S0,S1) 老年代 永久代
…
九.JAVA知识点全面总结9:JVM调优
1.JVM内存结构
①堆
- 存放对象实例
- 内存区域
新生代(Eden,S0,S1)
老年代
永久代
②方法区
- class文件信息:类信息,方法信息,代码缓存
- 字符串常量池
- 静态变量
③虚拟机栈
- 方法的调用
局部变量表
方法返回地址
动态链接:一个方法调用其他方法(符号引用转(class文件中为符号引用)换为内存地址(方法区中))
操作数栈:中间计算结果,临时变量
④本地方法栈
⑤程序计数表
- 字节码解释器工作时通过计数器进行
- 线程切换后恢复正确位置
- 一个线程一个程序计数器
2.对象的创建
- ①类加载检查(方法区中)
- ②分配内存(堆中)
- ③初始化零值(对象赋初值)
设置对象头(类型指针(哪个类的实例),对象的GC年龄(自身运行数据)) - ④执行init方法
- ⑤通过reference访问对象
局部变量表->堆(对象实例,对象类型)->(对象实例数据在堆中,对象类型数据在方法区中)
3.垃圾回收机制
①结构
- Eden区 S0区 S1区 老年代
- Eden区满了MinorGC存活的放入S0区,Eden去再满了赋值存活的和S0区赋值到S1区(S0区和S1区有一个一定是空的),多次MinorGC还在的放到老年代,老年代满了FullGC(仍然无法存放则OOM)
②判断对象死去
- 引用计数器:引用+1 失效-1 为0死去 循环引用不可回收
- 可达性分析:利用二叉树来画对象引用链,每个GCROOTS到某个对象中没有链路,该对象可以GC。
GCROOTS:JVM确定当前不可回收的对象。(方法区中,类静态属性引用的对象)。
③垃圾回收算法
- 标记清楚算法:记录死亡的然后清楚即可
- 复制算法:分成两块使用,一块满了存活对象复制到另一块。(总有一块是空的)
- 标记整理算法:满了然后所有存活对象向一段移动
- 分代收集算法:Eden S0 S1 (9:1:1)改良的复制算法
4.JVM调优
①JVM调优的参数
- 所有线程共享数据区的大小:新生代+老年代+持久代
- 可以调整的数据
调节最大堆内存,最小堆内存
调节新生代老年代的比值
调节S区和Eden区的比值
设置老年代和年轻代的大小
②JVM调优实战
- CPU指标
查看进程占用CPU
查看线程占用CPU - JVM内存指标
查看哪个区域导致GC
查看JVM参数是否合理 - JVMGC指标
查看每分钟GC
查看FullGC - 优化目标
FullGC改为每小时一次为一天一次
FullGC从5秒改为1秒 - 优化方案
死循环,bug等
不合理JVM(年轻代内存配置过小,堆内存配置过小)
未更新
未更新