· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Очень маленькие задержки

Посл.отвђт Сообщенiе


Дата: Дек 30, 2003 12:55:57

Как сделать на Visual C++ паузу меньше одной милисекунды (1e-3)? Нужны наносекунды (1e-9), в крайнем случае микросекунды (1e-6). Помогите.


Дата: Дек 30, 2003 13:23:31

Ну, можно поробовать так, но это от процессора зависеть будет.
mov ecx, 25 ; здесь свое значение подобрать
loop $


Дата: Дек 30, 2003 13:51:26

Спасибо, но мне нужно получить независимо от процессра. Причём это зависит от кол-ва процессов (а их число может меняется), поэтому нормально откалибровать по времени не получится.


Дата: Дек 30, 2003 16:03:52

AZ87
1ГГц = 1 000 000 000 Гц = 1 / 10-9сек

В компьютере есть один генератор с нужным вам периодом - тактовый генератор процессора.
Поэтому см. совет masquer


Дата: Дек 30, 2003 23:00:50

А как же кыш?
оно ж предсказывается на ура...
к тому же нихрена оно не точное будет. Хотя если шину заблокировать то наверное будет..


Дата: Дек 31, 2003 03:01:47 · Поправил: Dr.Golova

узнай частоту проца и юзай rdtsc - будет тогда тебе щастье


Дата: Дек 31, 2003 12:31:43

Попробуй QueryPerfomanceFrequency + QueryPerfomanceCounter.
С помощью первой узнаешь частоту таймера, с помощью второй ожидаешь нужный промежуток...


Дата: Дек 31, 2003 14:27:16 · Поправил: S_T_A_S_

Я неоднократно встречал обсуждения QueryPerfomanceFrequency.
Основная проблема заключается в том, что виндос не является системой реального времени. Со всеми вытекающими...
Особенно если речь идет о ТАКИХ задержках.
Да что говорить, даже микрософт в NT-системах часы нормально отображать не может.
Посмотрите на секундную стрелку ;)


Дата: Янв 1, 2004 16:05:00

Любой способ в винде будет неточный, делай хоть с QueryPerfomanceCounter, хоть задержкой Loop'ом, хоть через rdtsc...
А для точности до микросекунд, по-моему, хватит и QueryPerfomanceCounter.


Дата: Янв 13, 2004 06:36:57

спасибо всем


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.055