更新:我发布了关于John Robbins博客的评论。他在这里写了一个回复:
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-affect-performance.aspx
我正在处理的项目没有为其发布二进制文件构建符号,我想改变它。
一些信息:
什么是最好的命令行开关来生成我需要的,以及我将采取什么(如果有的话)性能命中?
此外,还有任何“陷阱”需要注意吗?
生成调试符号(即PDB文件)只是创建一个外部文件,调试器在查看内存中的代码时可以引用该文件。它不会影响编译器或链接器生成的代码(有点像生成.MAP文件)。
现在,如果您正在讨论在发布版本中定义_DEBUG,那就是一个完全不同的问题。
更新:我发布了关于John Robbins博客的评论。他在这里写了一个回复:
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-affect-performance.aspx
我在微软的网站上找到了以下链接:qazxsw poi
此链接适用于Visual C ++ 6,但我假设这些说明与Visual C ++ 8(2005)和9(2008)相同。
它提供的信息与TheBlack提供的链接非常相似,但更深入。
Visual C ++中的Generating and Deploying Debug Symbols with Microsoft Visual C++ 6.0开关将创建一个PDB,但此设置还意味着将使DLL或EXE更大的其他设置。具体来说,/Zi暗示/Zi
,暗示/DEBUG,/INCREMENTAL和/OPT:NOREF。最后三个使编译的DLL或EXE更大,但除了/OPT:NOICF之外,还可以通过指定/OPT:REF
和/OPT:ICF
来覆盖它们。没有必要覆盖/Zi
,因为/INCREMENTAL
和/或/OPT:REF
将确保完整的非增量链接。
资料来源:/OPT:ICF
我不知道命令行,但您需要在IDE中的c ++编译器配置(程序数据库)和链接器(生成调试信息)中设置调试符号。
如果在项目中找到设置,则可以使用帮助查看它们引用的命令行。