2013-07-21 17 views
6

javascriptのメモリリークのユニットテスト方法はありますか?つまり、分離されたDOMツリーやメモリ使用量をチェックするためにjavascriptコードから直接ヒープにアクセスする方法はありますか?ユニットテストでメモリリークが発生する

私はあなたがChrome Dev Toolsからこれを行うことができると知っていますが、単体テストから直接行う方法があるかどうかは疑問です。コードを書くこと、ヒープスナップショットを取ること、メモリリーク操作、別のヒープスナップショットの取得、メモリリークの可能性がある1回の操作ごとに繰り返し、コードの別のスニペットを書き込むたびに繰り返します。ある場所にコードを追加すると、アプリケーションの別の部分で予期しないメモリリークが発生する可能性があります。

メモリリークの大きなアプリケーションを書いただけで、最初からやり直す必要がありました。今回はアプリケーションを開発するときに、単体テストがメモリリークを作成したことを検出できることを確認したいので、できるだけ早くそれを削除することができます。

私はこのようなツールをC++で見たことがあると思いますが、Javascriptではそうではありません。誰も知っていますか?ありがとうございました!

+0

Chromeデベロッパーツール - >プロフィール。 – elclanrs

答えて

-2

メモリリークをチェックするには、変数のメモリ割り当てサイズまたはサイズにアクセスできる必要があります。 JavaScriptで行うことはできません。

1

MDN's docs on window.performanceによると、Google Chromeには、usedJSHeapSize、totalJSHeapSize、jsHeapSizeLimitなどの値にアクセスできる非標準の拡張子(window.performance.memory)があります。

バイトレベルの精度を得るには、--enable-precise-memory-infoフラグを使用する必要があります。

ガベージコレクションでは、ブラウザにGCを実行させる唯一の方法は、特別なコマンドフラグを使用してChromiumを使用することです。 このコマンドを実行すると:

chromium-browser --js-flags='--expose_gc' 

をあなたがGCを強制的に呼び出すことができる方法window.gc()へのアクセスを取得します。

これは、たとえば、ユニットテストでメモリ使用量をテストする可能性があります。

関連する問題