jvm有哪些垃圾回收器,实际中如何选择?
7.G1收集器一款面向服务端应用的垃圾收集器。 特点如下: 并行与并发:G1能充分利用多CPU、多核环境下的硬
件优势,使用多个CPU来缩短Stop-The-World停顿时间。部分收集器原本需要停顿Java线程来执行GC动作,G1收
集器仍然可以通过并发的方式让Java程序继续运行。 分代收集:G1能够独自管理整个Java堆,并且采用不同的方
式去处理新创建的对象和已经存活了一段时间、熬过多次GC的旧对象以获取更好的收集效果。 空间整合:G1运作
期间不会产生空间碎片,收集后能提供规整的可用内存。 可预测的停顿:G1除了追求低停顿外,还能建立可预测
的停顿时间模型。能让使用者明确指定在一个长度为M毫秒的时间段内,消耗在垃圾收集上的时间不得超过N毫
秒。

这些准则仅提供选择收集器的起点,因为性能取决于堆的大小,应用程序维护的实时数据量以及可用处理器的数量
和速度。 如果推荐的收集器没有达到所需的性能,则首先尝试调整堆和新生代大小以达到所需的目标。 如果性能
仍然不足,尝试使用其他收集器 总体原则:减少STOP THE WORD时间,使用并发收集器(比如CMS+ParNew,
G1)来减少暂停时间,加快响应时间,并使用并行收集器来增加多处理器硬件上的总体吞吐量。