この質問では、.Netアプリケーションのパフォーマンスを測定するための優れたアドバイスを集めることができれば幸いです。.Netアプリケーションのパフォーマンスを測定する方法
個人的には、私はアルゴリズムをテストしたいという状況にあり、測定値が正確であることを確かめたいと思います。そこで私は、次の操作を行います。Visual Studioの外でアプリケーションを実行する
- リリースモードのコンパイル(最適化など)
- コードを複数回にわたりループ
- (などの不要なチェックを回避)と(最低時間がかかります適切なクロックを使用して
- (* 1) )それは前にJITコンパイルされ、定期的なGC、OS固有のものなどを避けてください(* 2)
(* 1)入力が常に同じではない場合は、実行時間の平均を実行すると意味があります。また、Accurately measure elapsed wall clock time in .NET
を参照してくださいので、質問は本当にです:
はI(または他の人が)上記のリストに見逃しているものはありますか?そして、(リストや新しいものの中で)提言がなぜうまくいくのかを詳しく説明します。
更新:ベンチマークの前にngen
を使用している人はいますか?はいの場合、なぜですか?
おかげで、ラッセEspeholt
あなたの目標は測定しているので、正しい軌道に乗っていると思います。その目的のために、私はrun-it-N-times-and-divide-by-Nメソッドを使用します。あなたが最適化するためのポイントを見つけるという目的を持っていたなら(時間の節約)、私は[stack-sampling](http://stackoverflow.com/questions/6328673/which-is-themost-reliable-profiling-tool- gprof-or-kachegrind/6367165#6367165)。 –