HiPerfTimer または StopWatch クラスの方がベンチマークに適しているかどうか、誰が知っていますか?その理由は?
ストップウォッチ は高解像度タイマー(利用可能な場合)に基づいています。これは IsHighResolution で確認できます
高解像度のタイミングに関しても同じです。
どちらもこれを使用します:
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(out long PerformanceCount);
この:
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(out long Frequency);
基になるタイミングを実行します。 (これはReflector.NETで確認できます)。 StopWatchは、フレームワークの一部であり(別のDLLをリンクする必要がない)、HiPerfTimerよりも優れた機能を備えているため、使用します。
StopWatch-高解像度のパフォーマンスカウンターをサポートしていないシステムでも機能し、それを使用するための外部ライブラリは必要ありません。
高解像度のカウンターがサポートされていない場合、もう1つはWin32Exceptionをスローします。