jvm G1垃圾收集器有什么缺点?
G1垃圾收集器是否适用于所有情况?相对于cms、parallel等有什么优缺点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
G1垃圾收集器是否适用于所有情况?相对于cms、parallel等有什么优缺点?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
首先要说明,没有一款垃圾收集器是完美无缺的,只能分场景选择最适合的垃圾收集器。由于 G1 和 CMS 相比其他收集器都有停顿时间短的特点,所以主要对比这两个收集器:
G1 优点:
G1 需要记忆集 (具体来说是卡表)来记录新生代和老年代之间的引用关系,这种数据结构在 G1 中需要占用大量的内存,可能达到整个堆内存容量的 20% 甚至更多。而且 G1 中维护记忆集的成本较高,带来了更高的执行负载,影响效率。
按照《深入理解Java虚拟机》作者的说法,CMS 在小内存应用上的表现要优于 G1,而大内存应用上 G1 更有优势,大小内存的界限是6GB到8GB。
短停顿时间且可控:
高吞吐量:
以我浅薄的理解,G1已经基本能全面替代cms、parallel等回收器。而且可以同时满足两代回收。