Небольшая оптимизация цикла for() при использовании STL итераторов. Увеличивает скорость цикла примерно на 25 %. Тестировал только с vector (динамический массив), но будет работать на всех.
P.S. Во многих уроках по C++ можно увидеть такой вариант (он не оптимизирован) :
vector ints;
for(vector::iterator it = ints.begin(); it != ints.end(); it++);
хорошо, но ты вкладкой ошибся
Я хочу посмотреть реакцию народа... надо это...буду думать и годное выкладывать.
И какую реакцию ты ожидаешь? Если я выложу доказательсво закона Бойля-Мариотта то всем будет похуй как и на твои писульки, это развлекательный ресурс, а не форум программистов
Если ты выложишь док-во Бойля-Мариотта то мне будет интересно. Ну ок...выпилю.(чуть пожже)
25% процентов это только в дебаг версии. Если компилировать релизную версию с полной оптимизацией - то выигрыша уже не заметно, компилятор достаточно сообразительный, что микросовтовский, что интеловкий. Это раз. И если хочется заниматься оптимизацией - никаких стл или бустов, пиши сам, использование даже банального SSE даст заметный выигрыш, если руки прямые, да и на стандартное выделение/освобождение памяти в том векторе кучу времени сожрёт во многих случаях. Это два.
А у стл нету SSE? Странно.
В стл обычный сишный код. И как он будет заменяться на SSE при компиляции зависит от компилятора. И от опций компилирования. А компиляторы с SSE пока ещё тупят, и не всегда используют его там, где его реально можно использовать.
Хм, тоесть ints.end не кешируется, а ищется каждое обращение? Странно
Vector.Count() - точно кешируется.
Vector.Count() - точно кешируется.
А теперь включи оптимизацию в компиляторе, ибо end - отлично инлайнится и о компилятор сам выполнит такую оптимизацию.
Включил, посмотрел...понял что был не прав, зато оптимизация дебага :)
оптимизация дебага - дело неблагодарное :)
это так забавно когда анон разговаривает сам с собой иммитируя живое общение :3
Для меня программирование как магия.Плиз ,разбирающиеся личности,скажите насколько ахуенно содержание поста?
Ну, производительность повышает, но не там, где нужно :)
ммм... да точно! я так и думал!
Уёпок не пиши за меня
Чтобы написать коммент, необходимо залогиниться