setInterval(function(){ var xhr = new XMLHttpRequest(); xhr.open('GET', 'json.txt', true); xhr.onreadystatechange = function() { if(this.readyState == 4 && this.status == 200) { console.log(this.responseText); } }; xhr.send(''); }, 500);
たとえば、Google Chormeのように、このコードを1時間動作させたままにすると、メモリが消費されます。 整然と食べる。 Developer Toolsのメモリ使用量プロファイルを見ると、メモリはまだGCによってクリーンアップされているが、完全にはクリーンアップされていないことがわかります。 時間が経つにつれて、GCが大きくなった後のグラフ上の最小ポイント。

同様に、メモリ消費の増加は、「メモリ」について見ることができます。 メモリの「肥満」はFFで安定して見えます...
重要な...
- json.txtファイルはlocalhostにあり、そのダウンロードには500ミリ秒を超える保証はありません(チェックしました)。
- コンソールへの出力もオフにしました-メモリはまだ消費されています。
- 開発者ツールを有効にしない編集も、「メモリ」について見られるように流れています。
このコードに加えて、このページにはまったくコードがありません。
GCがJSでどのように機能するか理解できないかもしれませんが、私の意見では、流れるものも永遠に生きるものもありません。 誰かが理由を説明できますか?
PS「実際の」リークはまだありません。ページを更新すると、メモリはクリアされます。
PPS 1時間よりもはるかに長い間隔で構造が似たコードを残すというローカルの重要なニーズ(「ビジネス要件」)があります。
UPD:クロムにもチケットがあります: code.google.com/p/chromium/issues/detail?id=52411
UPD: 9で修正されたと言われていますが、10をチェックします。