![]() |
Подскажите как в VC измерить время с точностью до сотых миллисекунды (напр. время исполнения функции)
|
marine
GetTime(&t1); YourFavoriteFunction(); GetTime(&t2); GetTime(&t3); time = t2 - t1 - (t3 - t2) = 2 * t2 - t3 - t1; Теперь что такое GetTime. Эта штука должна возвращать время c требуемой точностью. Например, ZwQuerySystemTime или через QueryPerformanceCounter. Для достижения точности придется YourFavoriteFunction вызывать кучу раз. |
Есть другой способ: использовать выскоточный системный таймер. Делается это с помощью двух функций:
QueryPerformanceCounter QueryPerformanceFrequency Первая функция возвращает текущее значение таймера, вторая - значение, на которое он изменяется за секунду. Время можно высчитать по формуле (t2-t1)*10000/QueryPerformanceFrequency (t2 - значение таймера после вызова функции, t1 - значение до вызова). Но эти функции неудобны тем, что придется использовать 64-битные значения - так называемые Large Inetger (хотя большинство современных компиляторов работают с ними нормально). |
Спасибо ребята! Вы мне очень помогли!
Марина. |
Ребята мне надо просто в определеном месте запустить таймер и показывать его на экран.в секундах
и что бы я ставил таймер 10 сек и шел обратный отстет..после истечении времени что бы закнчил работу... |
Время: 01:23. |
Время: 01:23.
© OSzone.net 2001-