私はc#でいくつかのアルゴリズムの問題を解決し、それらをコンソールアプリケーションとして実行しています。
アプリケーションの効率をチェックするために、実行時間がどのくらいかを確認したいと思います。
現在、プログラムの開始時と終了時に時間を印刷して時間差を計算していますが、オブザーバーの影響を減らす方法はありますか?
私が知らないいくつかの組み込みのツール/プラグイン?
私はc#でいくつかのアルゴリズムの問題を解決し、それらをコンソールアプリケーションとして実行しています。
アプリケーションの効率をチェックするために、実行時間がどのくらいかを確認したいと思います。
現在、プログラムの開始時と終了時に時間を印刷して時間差を計算していますが、オブザーバーの影響を減らす方法はありますか?
私が知らないいくつかの組み込みのツール/プラグイン?
Stopwatch
そのために特別に設計されたクラスを使用する必要があります。
JIT時間の測定を回避するには、JITが実行できるように、何かを測定する前に、各アルゴリズムを少なくとも1回実行する必要があります。
アルゴリズムを測定するときは、それぞれを100回実行し、平均実行時間をとる必要があります。
オブザーバーの影響による遅延の最も重要な原因は、それ自体を印刷することです。もう1つの潜在的な遅延は、デバッグメッセージのテキストフォーマットです。だから私は次のことを提案します:
ストップウォッチクラスを使用します。例については、以下の方法を見てください。
using System.Diagnostics;
public void yourAlgorithm()
{
Stopwatch timePerParse = Stopwatch.StartNew();
/** -- TODO --**/
timePerParse.Stop();
Console.WriteLine(timePerParse.ElapsedMilliseconds);
}