垃圾收集器不仅仅是用于垃圾收集,它还要负责堆的管理与布局、对象的分配、与解释器的协作、与编译器的协作、与监控子系统协作等职责,从JDK10开始,RedHat提出了垃圾收集器的统一接口。
1. Epsilon收集器
Epsilon是垃圾收集器统一接口的有效性验证和参考实现,同时也用于需要剥离垃圾收集器影响的性能测试和压力测试。
应用只要运行数分钟甚至数秒,只要JAVA虚拟机能正确分配内存,在堆耗尽之前就会退出,那显然运行负载极小、没有任何回收行为的Epsilon便是很恰当的选择。
2. 收集器的权衡
主要受三个因素影响:
2.1 关注点
如果是数据分析、科学计算类,那吞吐量是主要关注点。
如果是SLA应用,那延迟就是主要关注点
如果是客户端应用或者嵌入式应用,垃圾收集的内存占用就是关注点。
2.2 基础设施
2.3 JDK发行商
3. 垃圾收集器参数总结



网友评论