Много лет назад компиляторы C не были особенно умными. В качестве обходного решения K & R изобрел ключевое слово register, чтобы намекнуть на компилятор, возможно, было бы неплохо сохранить эту переменную во внутреннем регистре. Они также заставили третичного оператора помочь генерировать лучший код.
С течением времени компиляторы созрели. Они стали очень умными в том, что их анализ потока позволяет им принимать более правильные решения о том, какие значения хранить в регистрах, чем вы могли бы сделать. Ключевое слово регистра стало несущественным.
FORTRAN может быть быстрее, чем C для каких-то операций, из-за проблем alias. Теоретически с тщательным кодированием можно обойти это ограничение, чтобы оптимизатор мог генерировать более быстрый код.
Какие существуют методы кодирования, которые могут позволить компилятору/оптимизатору генерировать более быстрый код?
- Идентификация платформы и используемого вами компилятора будет оценена.
- Почему техника работает?
- Образец кода рекомендуется.
Вот вопрос
[Изменить] Этот вопрос касается не общего процесса профилирования и оптимизации. Предположим, что программа написана правильно, скомпилирована с полной оптимизацией, протестирована и запущена в производство. В вашем коде могут быть конструкции, которые запрещают оптимизатору выполнять самую лучшую работу. Что вы можете сделать для рефакторинга, который устранит эти запреты и позволит оптимизатору генерировать еще более быстрый код?
[Изменить] Связанная с смещением ссылка