如何优化调试DLL以最小化VC6中的调试检查?

时间:2012-03-16 14:08:39

标签: c compiler-optimization visual-studio-6

由于各种历史(和愚蠢)原因,我已被分配到一个大型遗留项目,该项目只能部署在调试版本中。正如人们所预料的那样,有一些性能问题。

该项目是用 C Visual Studio 6 (是的,那个旧的)编写的。我正在寻找方法来最大限度地减少"一切都在调试版本中的影响"。是否有任何编译器或链接器选项可以最大限度地减少注入最终二进制文件的调试代码量?或者是否有一个外部实用程序可以在以后删除其中一些?

(我知道这基本上是一个愚蠢的问题,我们应该转而发布,但相信我,这完全不受我的控制......而且它几乎每天都会杀死我灵魂的一部分。)

1 个答案:

答案 0 :(得分:2)

首先,您应该列出调试和发布版本之间的所有差异,并尝试确定您可以更改的内容以及您不能更改的内容。 然后只需更改您允许的所有内容。

从我的头脑中,如果我的记忆正确地为我服务:

  • 调试:与调试DLL链接。 发布:与发布DLL链接。
  • 调试:无需任何优化即可编译。 发布:使用所有优化进行编译。
  • 调试:使用断言(-D_DEBUG)进行编译。 发布:无需断言即可编译(-DNDEBUG)。
  • 调试:使用调试符号编译/链接。 发布:编译/链接没有调试符号(对性能没有实际影响)。
  • 原始开发人员对项目配置所做的任意更改。

从所有这些中,只有前两个应该能够有所作为。 DLL,因为你依赖于调试DLL一些(愚蠢)的原因。第二个是因为优化可能会导致程序中的细微错误显示出来。