int x[100];
for (int i=0; i<100; ++i)
x = i;
Оптимизация скорости доступа к эл массива
Как это оптимизировать? Необходимо для быстрой растровой графики.
а вообще - задача довольно размытая. Конкретнее, если можно.
Цитата:
Originally posted by FRONTMAN
Необходимо для быстрой растровой графики.
Необходимо для быстрой растровой графики.
для быстрой графики пиши внутренний цикл на языке ассемблера
Цитата:
Originally posted by FRONTMAN
HELP! Скажите почему в VC так медленно присваиваются значения элементам массива.
Как это оптимизировать? Необходимо для быстрой растровой графики.
HELP! Скажите почему в VC так медленно присваиваются значения элементам массива.
Как это оптимизировать? Необходимо для быстрой растровой графики.
Если не влезать в ассемблер и всякие оптимизации с применением MMX, 3DNow, и т.д., то есть следующее соображение:
Если есть цикл с доступом по индексу, то замени его на цикл с указателем:
Было:
Код:
Стало:
Код:
int x[100];
int *pi = x;
for (int i=0; i<100; ++i, ++pi)
*pi = i;
int *pi = x;
for (int i=0; i<100; ++i, ++pi)
*pi = i;
А вообще, приведи фрагмент, где ты заметил торможение. Я какого-либо торможения не замечал...
Автор: Вопрос снимаю. В моем VC6.0 Standart не работала опция оптимизации. После установки нового компилятора скорость возрасла в сотни раз.Так что с адресацией все в порядке :)
Цитата:
Если есть цикл с доступом по индексу, то замени его на цикл с указателем
Бесполезное занятие. Хороший оптимизатор с этим справляется самостоятельно. Специально проверял на Borland 5.5, до VC руки не дошли, но думаю Microsoft не подкачала.