Почему в XCode отключение цикла происходит по умолчанию?

Кажется Unroll Loops настройки оптимизации под Apple LLVM 8.0 - Code Generation раздел отключен по умолчанию в последней версии XCode, 8.2.1, даже для Release конфигурации. Есть веская причина для этого? Я думал, что развертывание цикла было одной из самых основных оптимизаций.

2

Решение

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

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

Таблица 6-1 Параметры оптимизации компилятора

Быстрее

Компилятор выполняет почти все поддерживаемые оптимизации, которые не требуют пространственно-временного компромисса. Компилятор не выполняет развёртывание цикла или вставку функции с этой опцией. Эта опция увеличивает время компиляции и производительность сгенерированного кода.

Самый быстрый

Компилятор выполняет все оптимизации в попытке улучшить скорость сгенерированного кода. Эта опция может увеличить размер сгенерированного кода, так как компилятор выполняет агрессивное встраивание функций.
Этот вариант обычно не рекомендуется.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]