为什么生成pdb文件会增加我的本机C++ exe的大小?

Tow*_*ube 8 c++ visual-studio-2008

只需打开配置属性>链接器>调试>生成调试信息,我的exe的大小就从2.11MB增加到2.34MB

  1. 什么是额外的~230KB用于?我认为exe应该大致相同的大小(给pdb文件提供或采取额外的路径)但不是那么多.这种"膨胀"会不会有任何影响?

  2. 我还看到配置属性> C/C++>常规>调试信息格式设置为在发布模式下禁用,而pdb文件设置为生成,这有什么原因吗?从我所知道的exe是相同的大小 - 只是PDB在你启用程序数据库时变得更大,我看不出这个问题,但我想确保没有一些我是缺少考虑程序数据库是发布配置中新项目的默认值.

era*_*ran 4

可执行文件大小的增加可能是由于编译器包含原本会被优化掉的代码。尝试与/OPT:REF链接,看看大小是否会下降到原来的大小。

至于性能影响,应该不会很大。膨胀可能会导致代码缓存效率降低,但在大多数情况下,这是可以忽略的。