У меня есть автоматически сгенерированный код (около 18 000 строк, в основном упаковка данных) и другой около 2000 строк кода в проекте C ++. Проект включил операцию оптимизации времени соединения. / O2 и быстрая оптимизация кода. Для компиляции кода VC ++ 2008 express занимает невероятно много времени (около 1,5 часов). В конце концов, в нем всего 18 000 строк, почему компилятор занимает так много времени?
небольшое объяснение коду 18000. Это простой C, даже не C ++, который включает в себя множество распакованных циклов for, например:
a [0] .a1 = 0,1284;
a [0] .a2 = 0,32186;
a [0] .a3 = 0,48305;
a [1] .a1 = 0,543;
..................
Это в основном заполнить сложную структуру. Но не так сложно для компилятора, я думаю.
Режим отладки быстрый, эта проблема есть только в режиме Relase. Прежде чем у меня есть 18 000 строк кода, они все в порядке. (в это время данные находятся во внешнем местоположении). Тем не менее, режим выпуска делает много работы, которые уменьшают размер exe с 1800kb до 700kb.
эта проблема возникает на этапе компоновки, поскольку генерируются все файлы .obj. У меня тоже есть подозрения на генерацию кода ссылки-времени, но я не могу понять, где что-то не так.