Does shipping .pdb files in a release build of a .NET application incur a performance or memory penalty?
My team maintains a Compact Framework (Windows Mobile 6.0) app, and we’re looking to reduce the download and installation size. While investigating our options, we realized that we’re shipping the .pdb files so that we can get detailed stack traces in our log files.
Since the .pdb files double the app’s size, we’ve decided we can live without the extra detail the symbols provide.
I’m wondering, though, if we’ll also see a performance boost from dropping these from the release build.
When are the debug symbols loaded by default? It seems likely that they’d need to load at when the application launches, in which case we should see faster startup times.
I understand the advantages/disadvantages of including .pdbs with a release application, but I haven’t found anything that specifically addresses how the runtime uses them.
Pdb files are only loaded when the process crashes and an attached debugger/Dr Watson/WER generates a memory dump.
So distributing them wouldn’t increase normal loading time.