在此先感谢您的帮助。当有循环引用时,Node.js console.log(util.inspect(ctx)) 将转储出 [Circular] 例如
如果这会导致堆栈溢出或内存问题,是否应该完全避免循环引用?
如果我们有一个包含循环引用的循环,但我们在退出循环之前将对象设置为 null,那么垃圾收集器不应该清理存储,并且我们不应该有任何内存不足或堆栈溢出问题吗?
function run() {
var obj = {}, ctx = vm.createContext({});
obj.__ctx = ctx;
ctx.__obj = obj;
//console.log("before:"+util.inspect(obj));
//console.log("before:"+util.inspect(ctx));
vm.Script.runInContext('var x = +1;', ctx);
console.log(util.inspect(ctx));
console.log(util.inspect(obj));
ctx = null;
obj = null;
}
for (var i = 0; i < 10000; i += 1) {
run();
//sys.log(sys.inspect(process.memoryUsage()));
}