JVM调优

Java虚拟机JVM调优

堆内存

  • 一个线程一个,一个方法一个栈帧,方法内的形参和实参都在栈帧中
  • 方法区保存编译后加载的Java class,静态编程,常量
  • 本地方法栈保存机器底层代码,提供Java调用,包括C语言,汇编语音
  • 调优调的是堆内存,堆内存在Java虚拟机中是最大的,由GC进行管理
  • new的对象的引用存放在栈中,对象放在堆内存中
  • 没有任何引用指向的对象就是垃圾(一对垃圾,一堆垃圾,循环引用垃圾)
  • 强引用,软引用,弱引用,虚引用

GC判断垃圾的规则:

  • 正向可达:从GCRoots对象计可以到达的对象,剩下的全是垃圾。(非到达和循环引用的则为垃圾)

垃圾收集算法

  • Mark-Sweep 标记清除:优点:效率高,缺点:内存碎片化 Mark-Sweep 标记清除
  • Copying 复制:优点:可用内存块大,缺点:只能充分运用一半内存 Copying 复制
  • Mark-Compact 标记压缩:用在老年代堆内存中,压缩内存占比 Mark-Compact 标记压缩

JVM 分代算法

JVM 分代算法

JVM 中的垃圾收集器

JVM 中的垃圾收集器

Java对象的分配

  • 小对象可以分配在栈内存中,由Java虚拟机确定并分配
  • 常见的Java虚拟机是:Java HotSpot(TM) 64-Bit Server VM

Java对象的分配

JVM参数说明

JVM参数说明

JVM参数说明

JVM参数说明

JVM参数说明

JVM参数说明

参考文档

JavaSchool
importnew
dashidan