Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Измерение времени исполнения функции (http://forum.oszone.net/showthread.php?t=30712)

marine 16-01-2003 16:35 209802

Подскажите как в VC измерить время с точностью до сотых миллисекунды (напр. время исполнения функции)

vasketsov 16-01-2003 17:00 209803

marine

GetTime(&t1);
YourFavoriteFunction();
GetTime(&t2);
GetTime(&t3);
time = t2 - t1 - (t3 - t2) = 2 * t2 - t3 - t1;

Теперь что такое GetTime.
Эта штука должна возвращать время c требуемой точностью.
Например, ZwQuerySystemTime или через QueryPerformanceCounter. Для достижения точности придется YourFavoriteFunction вызывать кучу раз.

XXXX Pro 19-01-2003 00:59 209804

Есть другой способ: использовать выскоточный системный таймер. Делается это с помощью двух функций:
QueryPerformanceCounter
QueryPerformanceFrequency
Первая функция возвращает текущее значение таймера, вторая - значение, на которое он изменяется за секунду. Время можно высчитать по формуле
(t2-t1)*10000/QueryPerformanceFrequency
(t2 - значение таймера после вызова функции, t1 - значение до вызова).
Но эти функции неудобны тем, что придется использовать 64-битные значения - так называемые Large Inetger (хотя большинство современных компиляторов  работают с ними нормально).

marine 20-01-2003 14:09 209805

Спасибо ребята! Вы мне очень помогли!
Марина.

DENoszone 02-07-2008 18:44 840664

Ребята мне надо просто в определеном месте запустить таймер и показывать его на экран.в секундах

и что бы я ставил таймер 10 сек и шел обратный отстет..после истечении времени что бы закнчил работу...


Время: 01:23.

Время: 01:23.
© OSzone.net 2001-