Я собираю KiCad EDA suite, используя MSVC 9 (15.0.30729.1).
Это довольно сложная часть программного обеспечения, поэтому общее время компиляции 3,5 часа для /O2
Релиз сборки на i3 вполне приемлем. Для дальнейшей оптимизации кода я включил /GL
а также /LTCG
использовать функцию генерации временного кода ссылки.
Рассматривая самый большой компонент: в x86 это несколько замедлило процесс компоновки (как и ожидалось), но не дало уменьшения размера кода (7,3 МБ); в x64 одиночный вызов компоновщика теперь занимает 1,5 часа сам по себе, и при этом все равно не уменьшает размер кода (10,1 МБ).
Для сравнения, gcc на x64 генерирует 11 МБ без -flto
и 9,5 МБ с -flto
(потратив 10 минут на компоновщик) — хотя я знаю, что эта версия MSVC значительно старше, я, конечно, не привык к тому, что gcc генерирует меньший код за меньшее время, чем MSVC.
Поскольку мой опыт работы с инструментарием MSVC в лучшем случае поверхностен: характерно ли для генерации кода во время канала связи уменьшение размера кода? Есть ли опция компилятора, которую я мог пропустить?
Задача ещё не решена.