JVM 调优理论知识:垃圾回收
熟悉GC常用算法,熟悉常见垃圾收集器,具有实际JVM调优实战经验
garbage
什么是garbage?没有被引用的对象都是垃圾 garbage
how to find a garbage 如何找到垃圾
1.reference count 引用计数
rc 不能解决的问题: 循环引用。例如 A引用B,B引用C,C引用A.
2.root searching 根可达算法。 线程栈变量、静态变量、常量池、JNI指针
GC algorithms
1. Mark-Sweep ( 标记清除 )
2.Copying (拷贝)
3. Mark-Compact (标记压缩)
算法相对简单,在存活对象比较多的情况下效率较高。两遍扫描,效率较低,容易产生碎片。
不适合Eden 区
适用于存活对象较少的情况,只扫描一次,效率提高,没有碎片。 空间浪费,移动复制对象,需要调整对象引用。
适合于 Eden 区