Секундомер действительно повреждается?

На уровне страницы MSDN для класса Секундомера я обнаружил ссылку на интересную статью, которая делает следующее утверждение о Секундомере:

Однако существуют некоторые серьезные проблемы:

  • Это может быть ненадежно на ПК с несколькими процессорами. Из-за ошибки в
    BIOS, Запустите (), и Остановка () должна быть выполнена на том же процессоре для получения корректного результата.

  • Это ненадежно на процессорах, которые не имеют постоянной тактовой частоты (большинство процессоров может уменьшить тактовую частоту для сохранения энергии). Это объяснено подробно здесь.

Я мало смущен. Я видел тонны примеров использования Секундомера, и никто не упоминает это недостатки. Насколько серьезный это? Я должен избегать использования Секундомера?

9
задан Community 23 May 2017 в 12:01
поделиться

3 ответа

Он не сломан , он просто имеет ограничения. Для большинства целей (читайте: неформальный микротест) StopWatch можно использовать просто потому, что его достаточно для неформального тестирования. Для более формальных целей вы, скорее всего, захотите использовать свой собственный код инструментария, поскольку вы бы гораздо больше инвестировали в получение правильных результатов.

2
ответ дан 4 December 2019 в 23:38
поделиться

См. Примечания в статье MSDN:

На многопроцессорном компьютере не имеет значения, на каком процессоре выполняется поток. Однако из-за ошибок в BIOS или уровне аппаратной абстракции (HAL) вы можете получить разные результаты синхронизации на разных процессорах. Чтобы указать привязку процессора к потоку, используйте метод ProcessThread.ProcessorAffinity.

2
ответ дан 4 December 2019 в 23:38
поделиться

Более интересные вопросы:

  1. при каких условиях Stop () будет выполняться на другом процессоре, чем Start ()?
    {{1 }}.
    В большинстве сценариев приложений ответ - «нет».

  2. при каких условиях тактовая частота процессора изменится в течение измеренного интервала?
    .
    В тестах с интенсивной загрузкой процессора - "нет".

2
ответ дан 4 December 2019 в 23:38
поделиться
Другие вопросы по тегам:

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