![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GetTickCount [D6, WinXP]
Zloy_dima © (2004-08-10 15:29:00)Требуется измерять время с большой точностью. Если что то подобное GetTickCount?
Zloy_dima (2004-08-10 16:39:00) [1]ALS ©> Большое спасибо!
ALS (2004-08-10 16:28:00) [2]Можно измерять время с разрешением, соответствующим частоте процессора. Ассемблерная инструкция RDTSC возвращает число тактов. При старте ставишь RealTime priority, измеряешь квант процессора, скажем, за 1 сек., возвращаешь Normal приоритет. Зная квант, можно измерять времена. Пример использования RDTSC:
function RDTSC: Int64;
var TimeStamp: packed record
case byte of
1: (Whole: Int64);
2: (Lo,Hi: longint);
end;
begin
asm
dw 310Fh // rdtsc
mov [TimeStamp.Lo],eax
mov [TimeStamp.Hi],edx
end;
Result := TimeStamp.Whole
end;
Zloy_dima (2004-08-10 16:08:00) [3]Я сказал желательно...
Ega23 (2004-08-10 16:02:00) [4]нужно не больше 0.001 сек.
Это не мкс, это млс, ты на 3 порядка ошибся.
Zloy_dima (2004-08-10 15:59:00) [5]Как я понял у GetTickCount-а точность 0.01 сек., нужно не больше 0.001 сек.
TUser (2004-08-10 15:56:00) [6]В мкс нельзя. Стандарное АО не позволяет. Если можешь подключиться к атомным часам - тогда, конечно.
Ega23 (2004-08-10 15:42:00) [7]Если мне память не изменяет, то на уровне ядра можно поточнее достучаться. Но дискрет в мкс... Не уверен.
Anatoly Podgoretsky (2004-08-10 15:40:00) [8]Тогда не подойдет, у него разрешающая способность 1 миллисекунда, а точность еще меньше.
Zloy_dima (2004-08-10 15:35:00) [9]Желатьльно в мкс
Ega23 (2004-08-10 15:33:00) [10]Требуется измерять время с большой точностью.
Насколько большой?