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

 WASM Phorum —› WASM.ASSEMBLER —› Перевод ТАКТЫ в СЕКУНДЫ (и наоборот)

<< . 1 . 2 .

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


Дата: Дек 6, 2003 12:42:33 · Поправил: Sm_Andrei

засёк человек такты с помощью rdtsc, а потом
хочет получить миллисекунды или наоборот

В одном случае точности не будет никакой(если шустрый кусок).

нужно рассчитать частоту проца, вот тогда
засёк такты и засёк время и уже можно вычислить частоту проца

Тогда кусок проги должен выполняться несколько секунд - для большей точности. А потом по формуле:

частота_проца = такты/время
такты и время - выполнения куска проги.


Дата: Дек 6, 2003 13:44:21

Sm_Andrei

Это emergenter'у :-)
Где-то тут в форуме даже валяется такой исходник проги, вычисляющей
частоту проца по этому принципу, и вполне сносно работает, хотя
и примитивна :-)


Дата: Фев 24, 2004 12:54:23

2 Asterix :)

Может и я не так понял но посмотри в гдето тут на форуме конкретно не помню.

Программирование игр на ассемблере (Часть 3)

GetTickCount()
Функция kernel32.dll (ядро) возвращает количество миллисекунд прошедших с момента старта Windows. Возвращаемое значение переполняется приблизительно через 49,71 дней и отсчет начинается снова (это надо учитывать!).
...
Ну а если нужна большая точность, то можно воспользоваться вызовами QueryPerformanceFrequency и QueryPerformanceCounter, или как их еще называют, счетчиком производительности. Но, к сожалению, он поддерживается не всеми системами, а точнее процессорами. По сути это 64-х битный счетчик тактовых импульсов процессора (по моему он называется TSC), который есть в последних x86-совместимых процессорах (в Celeron и Pentium точно есть). По Микрософтовской документации функция QueryPerformanceCounter считывает в предоставленную Вами 64-битную переменную значение TSC, если он есть, либо 0, если его нет. А если быть немножко поточнее, то функция QueryPerformanceCounter возвращает не количество тактов процессора, а количество тиков, каждый из которых равен примерно 0,838 мкс. Хотя перед тем, как пользоваться этой функцией, нужно с помощью QueryPerformanceFrequency узнать частоту инкремента этого счетчика для данного компьютера (также 64-х битное значение).

это оттуда, если ты будеш знать начало выполнения программы, и конец, то будеш сколько выполняет по времени твоя программа.


Дата: Фев 24, 2004 14:49:46

<< . 1 . 2 .


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