Разница между / Z7 и / Zi относительно «отладки»

Я управляю большим приложением с исходными файлами xxx (Visual Studio 2010).

Уже несколько лет мы компилируем наши релизы с помощью / Zi, чтобы получить файл PDB, который хранится на нашем сервере символов. За прошедшие годы мы заметили, что наши сценарии сборки становятся все медленнее и медленнее, и теперь сборка исполняемого файла занимает более 2 часов.

Вопросы как Каковы последствия использования / Zi vs / Z7 для проектов Visual Studio C ++? кажется, указывают на то, что / Z7 является старым форматом, и что / Zi является предпочтительным.

Тем не менее мы попытались выполнить наши сценарии сборки с помощью / Z7 и увидели значительное сокращение времени с более чем 2 часов до 20 минут.
Мы также экспериментировали с использованием / Zi, но по 1 файлу PDB на исходный файл (который компоновщик по-прежнему объединяет в один большой файл PDB), и это также улучшает производительность компиляции, но немного снижает производительность времени компоновки.

Чтобы оптимизировать время сборки, я бы хотел переключиться обратно на / Z7 (компоновщик по-прежнему генерирует файл PDB в конце), но я не уверен, повлияет ли это на «отлаживаемость» приложения.

Вопросы:

  • Отличается ли формат внутренней отладки файла PDB, сгенерированного компоновщиком, при компиляции с / Z7 по сравнению с / Zi (возможно, формат такой же, просто место, где компилятор хранит отладочную информацию)?
  • Предотвращает ли / Z7 некоторые виды отладки по сравнению с / Zi?
  • Какой формат отладки (/ Zi, / Z7) рекомендуется вообще для релизных сборок?

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]