Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Дополнение про распределение регистров 16.03.05 12:03 Число просмотров: 2767
Автор: amirul <Serge> Статус: The Elderman
|
> каждое ядро)? Или вот как уже упоминалось распределить > регистры между вызывающей/вызываемой функциями чтобы > минимизировать использование памяти, причем не так - > "ээээ.. наверно лучше ecx, ebx -в функцию, eax результат.." > а с четким перебором ВСЕХ возможных вариантом с выбором > МИНИМУМА? А представь среднестатистическую функцию на С -
Вообще то сквозная оптимизация еще не настолько крута :-) но может когда нибудь настанет нам и такое щастье. А пока проблема распределения регистров заключается в том, что в функции есть десятка два автоматических переменных, если учесть, что в IA32 всего 4 регистра общего назначения, то при ЛЮБЫХ вычислениях появляется еще ДО ХРЕНА временных переменных и вот все это добро надо рассовать в регистры/стек. Причем так, чтобы как уже было сказано, обращений по шине было минимум, и стек использовался по минимуму. То есть когда я еще был куль-оптимизатором я часто заводил одну переменную и пытался использовать ее где можно и где нельзя. Понятность от этого страдала. Сейчас можно не мучаясь заводить столько переменных, сколько надо. Если одна из переменных используется только в одном участке кода, а другая - в другом, можно с уверенностью сказать, что одновременно они храниться в памяти не будут.
Короче, сейчас сторонники асма напоминают религиозную секту. Вроде ни одного аргумента за использование нет, в то же время есть куча аргументов против а они все "Верую ибо нелепо"
|
|
|