java 垃圾收集器选择
Java HotSpot VM 包括3种类型的收集器,每个收集器有不同的性能特征:
- 串行收集器使用单线程执行所有的垃圾收集工作,它是高效的因为它没有和其他线程通信。它最适合单核处理器,它不能发挥多核处理器的优点,尽管它在多核处理器上是有用的。 启用参数: -XX:+UseSerialGC
- 并行收集器(吞吐量收集器),能显著的减少垃圾收集开销。它主要针对的是中大型或者大数据集在多核或多线程处理器。并行收集器默认被使用,或者可以通过 -XX:+UseParallelGC 使用。
使用时需要注意并行压缩。 关注和 -XX:-UseParallelOldGC 的区别。
- 并发收集器它的垃圾收集暂停时间是短暂的。它被设计用在中大型应用中要求响应时间比吞吐量更重要的场景。它使用了最小暂停减少应用的执行。Java HotSpot VM 提供了一个选择在常用并发收集器中。
XX:+UseConcMarkSweepGC
-XX:+UseG1GC
以上内容来自JDK doc的翻译,翻译能力有限,有不足之处请留言联系我。