ユニットテストのメモリ使用量をプロファイルすることは可能ですか?
-
05-10-2019 - |
質問
私は、Visual Studioに付属するユニットテストフレームワークを使用して、リソースが漏れている(またはそうでない)かどうかを確認するためのいくつかのユニットテストの構築を検討しています。
現在、私はAntsプロファイラーの最新バージョンを評価していますが、コードからスナップショットを強制することができればうまくいかないので(スナップショットを取り、ユニットテストを数百回実行できます。ゴミコレクションを強制し、別のスナップショットを取り、後の分析のために結果を保存します)。
これはアリ/ビジュアルスタジオに関係する可能性がありますか、それとも他のプロファイラーでオプションを探索する必要がありますか?
解決
JetBrains dottrace/dotmemoryとResharperは、ユニットテストとプロファイリングに関する統合が改善されています。
http://www.jetbrains.com/profiler/index.html
Antsにそのような統合があるかどうかはわかりませんが、Red Gate Presalesを参照できますよね?
http://www.red-gate.com/about/all_testimonials.htm
彼らはあなたが彼らにもっと情報を求めて電話することを期待しています。
他のヒント
dotmemoryを見たことがありますか ジェットブレイン?
ドットメモリユニット すべての種類のメモリ問題についてコードをチェックするテストを作成できるユニットテストフレームワークです。
例えば:
テストで割り当てられたメモリの量を単純に評価する必要がある場合、Assertraffic属性を使用できます。この柔軟な属性を使用すると、オブジェクトタイプ、インターフェイス、または名前空間でトラフィックデータをフィルタリングできます。
私はAntsプロファイラーを使用していますが、最も便利だと思うのは、プロファイラーを実行中のテストプロセスに添付することです。これは、使用しているテストフレームワークによって異なる場合があります。たとえば、Resharperを使用していますが、プロセス画像名は次のようなものと呼ばれます。
jetbrains.resharper.taskrunner.clr ...
将来の読者の場合、Ants Memory Profilerを使用してコード内からスナップショットを強制することができると言及する価値があります。参照する必要があります
redgate.memoryprofiler.snapshot.dll
Antsインストールディレクトリに含まれています。その後、呼び出してスナップショットを取ることができます
redgate.memoryprofiler.snapshot.takesnapshot( "optional snapshot name")