Что такое тики таймера, единица измерения, используемая Stopwatch.ElapsedTicks

Я думал, что

  • Stopwatch.ElapsedTicks было равно
  • Stopwatch.Elapsed.Ticks.

Но это не так. В то время как последний представляет собой период в 100 наносекунд, первый использует загадочную единицу измерения, называемую timer ticks. Интересно, что это такое и чем они отличаются от привычной единицы измерения?


person Jader Dias    schedule 26.04.2011    source источник


Ответы (3)


Из документов:

Секундомер измеряет прошедшее время, подсчитывая тики таймера в базовом механизме таймера. Если установленное оборудование и операционная система поддерживают счетчик производительности с высоким разрешением, класс Stopwatch использует этот счетчик для измерения прошедшего времени. В противном случае класс Stopwatch использует системный таймер для измерения прошедшего времени. Используйте частоту и IsHighResolution для определения точности и разрешения реализации синхронизации секундомера.

Да, это боль, что «галочки» перегружены, чтобы означать две разные вещи :(

Я думаю, это в основном потому, что Stopwatch дает довольно «сырое» представление счетчика производительности, который может иметь разные реализации для того, что он означает «тик».

person Jon Skeet    schedule 26.04.2011
comment
Как мне преобразовать Stopwatch тиков в TimeSpan тиков, или я должен получить их из другого поля? Мне нужно, чтобы это было точно. - person Shimmy Weitzhandler; 09.02.2016
comment
Вот что я в итоге сделал. Большое спасибо. - person Shimmy Weitzhandler; 09.02.2016

Stopwatch.ElapsedTicks измеряет «тик» с точки зрения секундомера, который составляет 1 секунду/Stopwatch.Frequency.

Внутренне это основано на поддержке высокопроизводительного счетчика Windows (если поддерживается вашей системой, что почти всегда верно). Собственный вызов — QueryPerformanceFrequency, длина которого зависит от вашего оборудования. служба поддержки.

person Reed Copsey    schedule 26.04.2011

Может быть, это помогает увидеть вывод консоли ...

LinkedList 500 операций вставки/удаления ElapsedTicks : 45871
LinkedList 500 операций вставки/удаления Elapsed.ticks : 141266
LinkedList 500 операций вставки/удаления milisec: 14.1266
List 500 операций вставки/удаления ElapsedTicks: 1235121
Список 500 операций вставки/удаления Elapsed.ticks : 3803744
Список 500 операций вставки/удаления миллисекунд: 380,3744

(Из чего подтверждается, что Elapsed.Ticks измеряется в 100 наносекундах)

person HCP    schedule 04.05.2011