Высокоэффективный таймер по сравнению с StopWatch

На самом деле выполнение Вашего кода показывает что Полученный:: g () назван.

35
задан Kane 28 September 2009 в 07:32
поделиться

3 ответа

Секундомер основан на таймере с высоким разрешением (если он доступен), вы можете проверить это с помощью IsHighResolution

37
ответ дан 27 November 2019 в 07:06
поделиться

Они одинаковы, когда дело доходит до синхронизации с высоким разрешением.

Оба используют это:

[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.

19
ответ дан 27 November 2019 в 07:06
поделиться

StopWatch - он также работает в системах, которые не поддерживают счетчик производительности с высоким разрешением, и вам не нужны никакие внешние библиотеки для его использования.

Другой генерирует Win32Exception, если нет поддержки счетчика высокого разрешения.

6
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: