垃圾回收算法可以分为4类:复制收集算法,标记清除算法,标记整理算法,引用计数算法.
jdk1.8默认--Parallel Scavenge(新生代)+Parallel Old(老年代).
新生代/老年代回收都会导致全程stw. --younggc/oldgc/fullgc 都会全程stw.
gc线程的工作内存--标记存活线程,清除非存活线程.
新生代的收集器-- 新生代都是 复制收集算法
serial--单线程收集器. --之前cpu算稀缺资源,现在cpu过剩,就不用serial了,改用parNew.
parNew--多线程收集器. --stw时间最短.
parallel Scavenge--多线程 高吞吐量 收集器. --吞吐量优先.
吞吐量--用户线程执行的总时间/(用户线程执行的总时间+GC线程执行的总时间)
老年代的收集器-- 除了G1是标记整理算法,其他都是标记清除算法.
serial old--单线程--全程stw. --之前cpu算稀缺资源,现在cpu过剩,就不用serial old了,改用cms.
CMS--多线程--全程stw. --stw时间最短.
parallel Old--多线程--全程stw. --吞吐量优先.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)