38

HiPerfTimerまたはStopWatchクラスがベンチマークに適しているかどうか、そしてその理由を誰かが知っていますか?

4

3 に答える 3

41

ストップウォッチは高解像度タイマー(利用可能な場合)に基づいています。IsHighResolutionで確認できます。

于 2009-09-28T07:38:02.847 に答える
20

高解像度のタイミングに関しては同じです。

どちらもこれを使用します:

[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を使用します。

于 2009-09-28T07:42:23.150 に答える
6

StopWatch-高解像度のパフォーマンスカウンターをサポートしていないシステムでも機能し、使用するために外部ライブラリは必要ありません。

もう1つは、高解像度カウンターがサポートされていない場合にWin32Exceptionをスローします。

于 2009-09-28T07:41:20.893 に答える