在mac os x上的有线内存增加nodejs迭代

当试图做一个未知的迭代次数的循环,我注意到我的mac上的有线存储器只是不断增加。 我有以下代码

var Iteration = function () { this.counter = 0; }; Iteration.prototype.go = function () { global.gc(); var util = require('util'); console.log('%s, %s', ++this.counter, util.inspect(process.memoryUsage())); var self = this; var largeArray = new Array(1e4); var l = largeArray.length; for(var i = 0; i<l; i++) { largeArray[i] = new Array(l); for(var j = 0; j < l; j++) { largeArray[i][j] = j+0.1; } } var t = setTimeout(function () { self.go(); t = null; }, 10); }; var iteration = new Iteration(); iteration.go(); 

当我用0.10.33节点的mac上的–expose-gc标志运行它时,rss和heap足迹是稳定的。 但是,我的系统监视器显示持续增加的有线存储器,直到我的mac崩溃(10.9.5)。 目前我没有其他系统来testing它,所以我想知道是否有其他人看到过这种行为,或者可以解释为什么会发生这种情况。

我已经testing了相同的代码在Ubuntu的虚拟框,似乎没有增加有线存储器的问题。 所以这个问题可以是Mac相关的或与Mac的nodejs构build相关。

       

网上收集的解决方案 "在mac os x上的有线内存增加nodejs迭代"