Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Количество тактов процессора [D5]


MVova ©   (2002-04-16 17:19:00) 

Всем привет.
Как узнать сколько тактов процессора затрачено на выполнение некоторых действий?


wicked   (2002-04-17 11:55:00) [1]


> А че оно и все очереди и предсказание ветвлений и т.п. замерит?
> Вот рулез то!

да нет... оно замерит реальное количество тактов, за которое выполнится кусок кода...
а еще точнее - rdtsc выдаёт в регистрах edx:eax количество тактов, тикнувших с момента включения питания...


REA   (2002-04-17 10:26:00) [2]

А че оно и все очереди и предсказание ветвлений и т.п. замерит?
Вот рулез то!


Anatoly Podgoretsky   (2002-04-16 18:46:00) [3]

MVova © (16.04.02 17:19)
Какой процессор, если современный (выше 486), то с помощью ассемблерной команды RDTSC


drpass   (2002-04-16 18:35:00) [4]

Посмотреть на ассемблерный код этих действий, и посмотреть в техническом описании процессора, сколько тактов идет на каждую команду. Второй способ - замерить время на выполнение операции и помножить его на частоту процессора. Оба метода очень неточные, но лучшего не придумали.
Архитектуры современных процессоров сводят на нет все попытки точных измерений - количество тактов каждый раз будет другое. Это зависит от того, есть ли данные для выполняемой команды в кеше, угадал ли блок предсказания ветвлений адрес перехода и т.д.
Но на 286 все будет работать более-менее точно :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо