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