![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Таймер реального режима и подсчет времени
Интересующийся © (2003-07-27 04:28:00)
Добрый день!
Может кто подскажет, как в Delphi узнать время с точностью до милесекунд в реальном режиме.
Нужно подсчитать время выполнения процедур и функций проги.
Игорь Шевченко (2003-07-28 11:18:00) [1]
Командой процессора rdtsc.
Например http://www.midnightbeach.com/jon/pubs/rdtsc.htm
AlexRush (2003-07-28 11:09:00) [2]
2Fenik © (27.07.03 13:08) - в этом случае не учитывается тот момент, что во время "замера" (между
x := GetTickCount; {перед началом процесса}иx := GetTickCount - x; {после завершения процесса}) может осуществиться переключение на другой поток. Поэтому рекомендую перед замером брать высший приоритет для процеса и потока (SetThreadPriorityиSetPriorityClass).
Если же размер замеряемого на скорость выполнения кода невелик, то таким способом поемерять реальную скорость вообще нельзя.
Если есть возможность исполнить проверяемый код в нулевом кольце защиты (драйвер), то можно воспользоваться расширением Pentium"ов для замерки скорости.
Fenik (2003-07-27 13:08:00) [3]
x := GetTickCount; {перед началом процесса}
...
x := GetTickCount - x; {после завершения процесса}
В "х" будет то, что тебе нужно в милесекундах.
IntLex (2003-07-27 10:14:00) [4]
Просто получить значение функции Time()