强制GC是怎么玩的(了解如何强制执行Java垃圾回收)
•
好文分享
导读:JVM GC很容易成为性能问题的替罪羊,然而GC问题的实质在于GC的实现不能满足当前的工作负载或者没有选择正确的垃圾收集器。本文作者针对不同的GC实现做了有效测试,相信通过阅读本文可以对不同垃圾收集器的特性有深入的认识。
问题
听说分配100 mb内存,也会导致JVM暂停几秒钟。
OpenJDK中的垃圾收集器
GC很容易成为性能问题的替罪羊,然而GC问题的实质在于GC的实现不能满足当前的工作负载。在很多情况下,这些工作负载本身就存在问题,也有很多时候,垃圾回收如此缓慢的原因只是因为使用了不适合的垃圾收集器。让我们看看OpenJDK中的GC:
黄色是STW阶段,绿色是并发阶段
这里需要注意垃圾收集器在常规GC循环中的暂停阶段。
实验
使用如下代码进行测试:
import java.util.*;
public class AL { static List