一开始使用计数回收机制,但是发现循环引用的时候内存容易泄露:
function problem(){
var objectA = new Object();
var objectB = new Object();
objectA.someOtherObject = objectB;
objectB.anotherObject = objectA;
}
正确的姿势:
objectA.someOtherObject = null;
objectB.anotherObject = null;
//因为程序员未释放结构内指针导致的内存泄漏...
然后又跳回了标记清除式的内存管理:
定期扫描内存,发现有未被对象指针访问到的空间即可清除。但是可见它产生了太多内存碎片,而且为了清除内存会导致程序间歇性中止......