Война миров - ассемблер против си


влияние кратности разворота цикла на производительность на различных типах процессоров


Выполнить разворот цикла можно как на ассемблере (на MASM'е за счет поддержки развитой системы макрокоманд он реализуется особенно легко), так и на… любом языке высокого уровня, действуя в обход компилятора.

После "ручной" оптимизации исходный текст нашей программы будет выглядеть так:

if ((a=n)>3)

       // обрабатываем первые n

– (n % 4) итераций

       for (a = 0; a < n - 3; a += 4)

       {

              crc_1 += p[a+0];

              crc_2 += p[a+2];

              crc_3 += p[a+3];

              crc_4 += p[a+4];

       }

// обрабатываем оставшийся "хвост"

for (a = n - x % 4; a < x; a++) crc += p[a];

// складываем все воедино

crc += crc_1 + crc_2 + crc_3 + crc_4;



Содержание  Назад  Вперед






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