Как ВЫ сокращаете время компиляции и связывания времени для проектов Visual C ++ (нативный C ++)? - PullRequest
39 голосов
/ 13 декабря 2008

Как ВЫ сокращаете время компиляции и время компоновки для проектов VC ++ (нативный C ++)?

Укажите, относится ли каждое предложение к отладке, выпуску или к обоим.

Ответы [ 12 ]

1 голос
/ 15 июля 2011

Еще одна полезная техника - это капля. Я думаю, что это похоже на то, что описал Мэтт Шоу.

Проще говоря, вы просто создаете один файл cpp, в который вы включаете другие файлы cpp. У вас может быть две разные конфигурации проекта, одна обычная и одна большая. Конечно, blobbing накладывает некоторые ограничения на ваш код, например, имена классов в безымянных пространствах имен могут конфликтовать.

Один метод, позволяющий избежать перекомпиляции всего кода в BLOB-объекте (как упоминал Дэвид Родригес) при изменении одного файла cpp, - это создание «рабочего» BLOB-объекта, созданного из файлов, измененных недавно, и других обычных BLOB-объектов.

Большую часть времени мы используем blobbing на работе, и это сокращает время сборки проекта, особенно время компоновки.

0 голосов
/ 05 августа 2014

Время компиляции:
Если у вас есть IncrediBuild, время компиляции не будет проблемой. Если у вас нет IncrediBuild, попробуйте метод «построения единства». Он объединяет несколько файлов cpp в один файл cpp, поэтому время компиляции сокращается.
Время соединения:
Метод "построения единства" также способствует сокращению времени соединения, но не намного. Как бы то ни было, вы можете проверить, включены ли «Общая глобальная оптимизация» и «LTCG», в то время как эти флаги делают программу быстрой, они делают ссылку МЕДЛЕННОЙ.
Попробуйте отключить «Целую глобальную оптимизацию» и установить для LTCG значение «По умолчанию», время соединения может быть уменьшено на 5/6.
(LTCG означает создание временного кода канала)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...