首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

学习JVM原理-4.GC算法:批量处置还是一个一个处理

2012-10-20 
学习JVM原理-4.GC算法:批量处理还是一个一个处理摘自《深入理解Java虚拟机》周志明著答案:批量处理具体有两

学习JVM原理-4.GC算法:批量处理还是一个一个处理
摘自《深入理解Java虚拟机》周志明著


答案:批量处理
具体有两种做法:
  1.Mark(判死刑),然后批量sweep (Mark-Sweep算法)
  2.把所有对象都放到Heap中的一块区域中,这个区域可以理解为一个监狱;监狱塞满人时,就一次性找出尚不须回收的对象,把它们复制到Heap中的空闲区域中,然后投弹夷平监狱,清除出整个内存区域;新的关押区域即成新的监狱,它也终将被夷平 (整个算法叫做copying 算法)

第一种做法中,由于存活对象跟可回收对象混杂在一起,可回收对象们没有集中在一起,因此要一个一个清除,效率会比较低(相当于挨家挨户搜查杀人),而且还会造成内存碎片,不利于大对象的分配

第二种模式效率高,且没有内存碎片,但由于它总是用一块内存,空置一块内存,这会造成内存浪费。

热点排行