|
|
| Посл.отвђт | Сообщен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 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.044 |