Я изучаю оптимизацию gcc. Насколько я понимаю, компиляторы пытаются улучшить / уменьшить код.
Это заметно, когда я запускаю разные файлы с разными уровнями оптимизации. Добавив -O3
во время компиляции, я получаю самый быстрый результат при запуске скомпилированной программы.
Поскольку это было улучшено, я думал, что файлы сборки должны иметь меньше команд. Однако, просматривая эти файлы, я обнаружил, что он имеет даже больше, чем файл по умолчанию.
- Правда ли, что файл сборки будет иметь больше команд, тем не менее он работает быстрее, чем другой? Если да, то как это возможно? Что было улучшено?
- Каково общее влияние на файлы сборки / объектные файлы при использовании флагов оптимизации в gcc?