- это достаточно умный компилятор, чтобы ....
Да.Многие компиляторы гораздо лучше справляются с такими микрооптимизациями, что и кодеры.
Эта микрооптимизация цикла или развернутого цикла зависит от владельца - некоторые будут быстрее в одну сторону, другие - в другую.Лучше всего написать код для ясности и позволить компилятору оптимизировать.Если компилятор не оптимизируется должным образом, более эффективно исследовать новый компилятор (или его опции), чем крафт-код.
Тем не менее, для выбранной ситуации и с очень хорошо осведомленным кодером, специально созданный код может быть лучше.Но это требует времени, которое может быть потрачено с большими проблемами эффективности.
Проблема с созданным кодом (более быстрый код, но выглядит странно) включает в себя: более высокие затраты на обслуживание, запутанная сложность для оптимизации на других платформах, более высокая частота ошибок.Поэтому созданное решение может работать быстрее, но медленнее при следующем обновлении компилятора.