Я работаю над сокращением времени сборки большого приложения Visual C ++ 2008.Одним из худших узких мест, по-видимому, является генерация файла PDB: на этапе компоновки mspdbsrv.exe быстро потребляет доступную оперативную память, и сборочная машина начинает постоянно пейджировать.
Моя текущая теория заключается в том, что наша PDBфайлы просто слишком велики.Однако я не смог найти никакой информации о том, каков «нормальный» размер файла PDB.Я провел некоторые приблизительные измерения одной из библиотек DLL в нашем приложении:
- CPP-файлы: 34,5 МБ, 900 тыс. Строк
- Заголовочные файлы: 21 МБ, 400 тыс. Строк
- Скомпилированная DLL: 33 МБ (скомпилирована для отладки, а не выпуска)
- PDB: 187 МБ
Итак, размер файла PDB составляет примерно 570% от размераDLL. Может ли кто-нибудь, имеющий опыт работы с большими приложениями Visual C ++, сказать мне, имеют ли смысл эти соотношения и размеры? Или есть ли признак того, что мы делаем что-то не так?
(Самый большой файл PDB внаше приложение в настоящее время занимает 271 МБ для 47,5 МБ DLL. Однако размер исходного кода для него сложнее измерить.)
Спасибо!