java GC
内存分配
- 根据GC日志获取老年代的活跃数据大小为300M,各个分区大小可以设为:
总堆:1200M = 300M x 4
新生代: 450M = 300M x 1.5
老年代: 750M = 1200M - 450M
什么样的对象需要被GC
- 判断算法
- 引用计数法 (循环引用问题)
- 可达性分析( GC Roots)
- 虚拟机栈中的本地变量表引用的对象
- 方法区 类静态变量引用的对象、常量引用对象
- 本地方法栈中JNI
- 对象很大:
-xx:PretenureSizeThreshold=3145728
新生代GC
- Minor GC
- 分配担保
- Minor GC 之前检查: 老年代最大可用连续空间是否大于新生代所有对象总空间