垃圾回收过程经常使用(也是最简单)的算法是标记清除(mark and sweep)。整个过程分为三步。
(1) 迭代分配表,把每个对象都标记为“已死亡”。
(2) 从指向堆的局部变量开始,顺着遇到的每个对象的全部引用向下,每遇到一个之前没见过的对象或数组,就把它标记为“存活”。像这样一直向下,直到找出能从局部变量到达的所有引用为止。(3) 再次迭代分配表,回收所有没标记为“存活”的对象在堆中占用的内存,然后把这些内存放回可用内存列表中,最后把这些对象从分配表中删除。
垃圾回收过程经常使用(也是最简单)的算法是标记清除(mark and sweep)。整个过程分为三步。
(1) 迭代分配表,把每个对象都标记为“已死亡”。
(2) 从指向堆的局部变量开始,顺着遇到的每个对象的全部引用向下,每遇到一个之前没见过的对象或数组,就把它标记为“存活”。像这样一直向下,直到找出能从局部变量到达的所有引用为止。(3) 再次迭代分配表,回收所有没标记为“存活”的对象在堆中占用的内存,然后把这些内存放回可用内存列表中,最后把这些对象从分配表中删除。
本文标题:标记清除
本文链接:https://www.haomeiwen.com/subject/nilcbktx.html
网友评论