Уроки С++. Изучай и оптимизируй! Советы С++. Оптимизация цикла!

preview_player
Показать описание
---------------------------------------------------------------------------------------------
Уроки С++. Изучай и оптимизируй! Советы С++.
Оптимизация в языках Си и С++.
Приемы оптимизации. Примеры оптимизации.
---------------------------------------------------------------------------------------------
!ВАЖНО! Помощь каналу
Яндекс кошелек - 4100 1163 2706 8392
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
#cppprosto
#программирование
#обучениепрограммированию
#оптимизация
#cppоптимизация
#эффективныйcpp
#улучшениеcpp
#сиплюсплюс
Рекомендации по теме
Комментарии
Автор

Оптимизация не работает! Автор допустил ошибку в коде!

Нужно учитывать длину int'а и вместо:
unsigned long end = reinterpret_cast<unsigned long>(array) + static_cast<unsigned long>(n);
Написать:
unsigned long end = reinterpret_cast<unsigned long>(array) + static_cast<unsigned long>(n) * sizeof(int);

Единственное почем второй блок кода быстрее - это то что он не инициализирует весь массив (а зачастую только четверть).
Если исправить ошибку то время выполнения будет одинаковое!

ВладимирАтаманов-ви
Автор

а почему не взять длину массива вместо объявления n?

KopoLPedov
Автор

Круто, спасибо за полезную инфу. Тут может еще как-то можно привинтить векторизацию?

vladalu
Автор

В старом сишном стиле нельзя, в с++ он будет по очереди пытаться подставлять static_cast, reinterpret_cast и const_cast

RandomPerson-gyql
Автор

Идея конечно хорошая, но во встраиваемых системах её не используешь. MISRA запрещает иттерировать по массиву с помощью указателей

your__weekly__meme__dose
Автор

сначало объявляет массив с 1000 элементов, а затем только сам размер на 1000, выглядит вообще не айс

korsm
Автор

херня какая-то. На армах выгоднее добавлять индекс к указателю, чем инкрементировать указатель каждый цикл.

XpIOHdeJIb