面试:如何改进复制算法?
分情况使用复制算法,在新生代和老年代使用不同的策略。在新生代中的对象98%都是朝生暮死的类型,所以不必要按照1:1的比例去划分内存空间,只需要将内存划分为一块比较大的Eden和两块比较小的Survivor内存就好。每次使用一块Eden和Survivor,当回收时,将Eden和Survivor中还存活的对象复制到另一块Survivor中就好。如果另一块Survivor中没有足够的空间大小去存放上一次新生代中收集下来的对象时,将这些对象直接通过担保分配的机制进入老年代。
面试:如何改进复制算法?
分情况使用复制算法,在新生代和老年代使用不同的策略。在新生代中的对象98%都是朝生暮死的类型,所以不必要按照1:1的比例去划分内存空间,只需要将内存划分为一块比较大的Eden和两块比较小的Survivor内存就好。每次使用一块Eden和Survivor,当回收时,将Eden和Survivor中还存活的对象复制到另一块Survivor中就好。如果另一块Survivor中没有足够的空间大小去存放上一次新生代中收集下来的对象时,将这些对象直接通过担保分配的机制进入老年代。