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

时间:2011-07-11 13:50:45

标签: c++ visual-studio-2008

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

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

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

3 个答案:

答案 0 :(得分:4)

可执行文件大小的增加可能是由于编译器包含了原本可以优化的代码。尝试与/OPT:REF进行关联,看看是否会将尺寸缩小到原来的大小。

至于性能影响,它应该不重要。膨胀可能导致代码缓存效率降低,但在大多数情况下可以忽略不计。

答案 1 :(得分:0)

EXE的大小可能完全与性能无关。

答案 2 :(得分:0)

不仅仅是PDB文件的路径,而是可执行文件映像头中的“Debug”,内部GUID用于确保在调试/崩溃调试时加载正确的PDB文件。