G1适合8/16G以上的内存使用,原因在于G1rescan更快,清除垃圾时虽然是stop the world但是可控,CMS虽然是并发但是不可控,大块内存要回收会影响到应用程序的性能。另外由于G1在清理垃圾时使用STW,所以可以采用标记整理算法,没有内存碎片问题
G1大体思路:
在并发标记时,对象引用的变动会增加一个barrier, 就有了变动的log集合,rescan时只需要扫描log集合即可。
CMS大体思路:
G1适合8/16G以上的内存使用,原因在于G1rescan更快,清除垃圾时虽然是stop the world但是可控,CMS虽然是并发但是不可控,大块内存要回收会影响到应用程序的性能。另外由于G1在清理垃圾时使用STW,所以可以采用标记整理算法,没有内存碎片问题
G1大体思路:
在并发标记时,对象引用的变动会增加一个barrier, 就有了变动的log集合,rescan时只需要扫描log集合即可。
CMS大体思路: