私のNode.jsプロジェクトと閉鎖のメモリリークを特定し、私はすでに閉鎖にnullに変数を設定して、私は意味、私はこのようなコードを知っている:がメモリリークに苦しんmemwatchノード
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
});
が原因だろうメモリリークが発生するので、これらの変数をnullに設定するコードを追加します。
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
a = null;
b = null;
c = null;
});
しかし、私はまだリークを得たので、私は私のコードが悪いのかを把握するためにmemwatch-node
を使用するようにしてください。
結果には、リークの原因となるclosure
が表示されますが、ターゲットを指定するには十分ではありません。
私はこの
{ what: 'Closure',
'+': 12521,
size: '520.52 kb',
'-': 5118,
size_bytes: 533016 },
のようなJSONを持っていると私は、クロージャが漏れているかについて、より具体的な詳細を得ることができる場合、私は疑問に思って。
私はすべてのクロージャの名前を割り当てましたが、まだ動作しません。
これはオブジェクトリテラルです。それ自体は、そのプロパティの1つを文字列 'Closure'に設定することを除いて、「クロージャ」とは何の関係もありません。「1982 Datsun Cherry」である可能性もあります。 –
それで、どんな種類のオブジェクトがそうするのですか?私は自分で "閉鎖"を設定しません。 – bxshi
ええ、私は恥ずかしいです、私はあなたの質問が今であることをよく分かります。私はmemwatchのドキュメントに入っていますが、diffレポートの 'what: 'Closure''セクションの証拠を見つけることができません。 [This](https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/)は、閉鎖漏れは報告されているが、そうではありません。多少混乱します。 –