Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

High-Resolution Timer = Time Stamp Counter = RDTSC

Некоторые приложения очень требовательны к точности измерения времени. Им нужен таймер, который сможет отразить дельту времени даже двух последовательных операторов. Intel в своей архитектуре IA-32 реализовала подобный таймер и добавило в instruction set соответствующую инструкцию RDTSC для его использования. Эта инструкция сохраняет число тиков (64-битное значение) от старта процессора в регистрах EDX:EAX.

Реализация на C#.
  1. Прототип функции, которая возвращает текущее значение RDTSC.
    Прототип функции, которая возвращает текущее значение RDTSC.
  2. x86 байт код, который выполняет инструкцию RDTSC и соответствует конвенции вызова делегата с типом RdtscCallback.
    x86 байт код, который выполняет инструкцию RDTSC и соответствует конвенции вызова делегата с типом RdtscCallback.
  3. Создание екземпляра делегата с типом RdtscCallback, который выполняет эти инструкции.
    Создание екземпляра делегата с типом RdtscCallback, который выполняет эти инструкции.

RDTSC не лишен проблем, описанных в этом документе.

0 коммент.:

Отправка комментария

Copyright 2007-2011 Chabster