Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Оптимизация для pentium процессора

9. ИСПОЛНЕНИЕ КОДА В ЦИКЛЕ
==========================
Обычно при первом исполнении некоторой части кода времени тратиться больше,
чем при ее повторном исполнении. И причины этого следующие:

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

9.2 Декодирование кода - тонкий момент. Если требуется 1 такт на декодирование
    инструкции, то не возможно за этот-же так декодировать вторую инструкцию,
    т.к. процессор еще не знает длину первой инструкции. Pentium решает эту
    проблему запоминая длину любой, только что выполнившейся инструкции.
    Следствием этого является то, что при первом исполнении инструкции не
    спариваются, за исключением случая, когда длины обеих команд  - один байт.

9.3 При первом проходе ветви еще не в целевом буффере, и, следовательно,
    вероятность правильного предсказания перехода меньше.

9.4 Все данные, используемые кодом должны быть в кеше данных, что может занять
    больше времени, чем исполнение инструкций. При повторном исполнении
    возможно, что данные уже в кеше.

Четырех этих причин более чем достаточно, что бы код цикла при повторном
исполнении требовал меньше времени, чем при первом.

Если ваш цикл слишком большой и не помещается в кеш, то против вас сработают
9.1 и 9.2. Вы должны попытаться реорганизовать цикл, что бы он целиком
помещался в кеш. Если у вас более 256 переходов и ветви в цикле, то против
вас сработает 9.3 по полной программе.

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

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог