2011-07-28 51 views
6

我读到node.js是单线程的,所以它不会为每个http请求分叉一个新进程或启动一个新线程。但是在关闭每个连接后,http模块是否有清理的方法?例如,如果我在每次有人请求一个页面时在回调中创建一个对象,一旦响应被提供并且连接关闭,该对象是否会被销毁?请求后,node.js是否自行清理?

回答

7

是的,这是由于范围界定。

http.createServer(function(res) { 
    var localobject = new BigObject(); 
    ... 
    res.end(); 
}); 

一旦您结束该功能,BigObject不再被使用,并被垃圾收集器清理。

+0

太棒了!这很好。谢谢。 –

+2

您也可以通过执行'localobject = null;' – generalhenry

+0

来加快速度;我不认为将对象上的本地引用设置为null将有助于加速垃圾回收...... ^ – weisjohn