javascript - nodejs 内存泄露问题?
伊谢尔伦
伊谢尔伦 2017-04-11 12:13:26
0
1
369

`

var theThing = null
var replaceThing = function () {
    var originalThing = theThing
    var unused = function () {
        if (originalThing)
        console.log("hi")
     }
    theThing = {
        longStr: new Array(1000000).join('*'),
        someMethod: function () {
          console.log('someMessage')
        }
    };
};
setInterval(replaceThing, 1);`

描述问题:
这是nodejs中一个典型的垃圾回收案例,上面那段代码运行之后会带来非常明显的内存泄露情况,问题在于这段代码并没有形成闭包,为什么堆内的对象没有被立即释放?
原文中的一个解释是unused函数内部引用了originalThing,但是函数运行之后,申请的内存就会被释放,原本指向unused的函数的指针也就没有了,所以unused函数在堆中也应该会被回收,对originalThing的引用也就不存在了,那么怎么会引起内存泄露呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(1)
迷茫

这个不会引起内存泄漏呀,但是如果说内够搞跨nodejs还是有可能的。因为 1ms 毕竟很短

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!