web-dev-qa-db-ja.com

関数の実行時間を測定する最良の方法は何ですか?

明らかに私はできるとDateTime.Now.After-DateTime.Now.Beforeしかし、もっと洗練されたものが必要です。

どんなヒントでも感謝します。

84
inspite
96
ctacke

System.Diagnostics.Stopwatchをご覧になることをお勧めします

ストップウォッチについてもっと調べてみると、このサイトが見つかりました。

ストップウォッチに注意してください

別の可能性に言及した

Process.TotalProcessorTime

45
tafa

プロファイラーを使用する

それでもアプローチは機能しますが、より洗練されたアプローチを探している場合。 C#Profiler を使用することをお勧めします。

彼らが持っている利点は次のとおりです。

  • 文レベルのブレークアップを取得することもできます
  • コードベースを変更する必要はありません
  • 一般に、機器のオーバーヘッドは非常に少ないため、非常に正確な結果を得ることができます。

多くの利用可能な open-source もあります。

11
M.N

Tickcountは良いですが、100回または1000回実行し、平均を計算することをお勧めします。より測定しやすくなるだけでなく、本当に速い/短い関数の場合だけでなく、オーバーヘッドによって引き起こされるいくつかの一時的な影響を処理するのに役立ちます。

4
FooLman