![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество тактов процессора [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 все будет работать более-менее точно :)