2011-07-28 1 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

関連する問題