0

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

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

(我知道这基本上是一个愚蠢的问题,我们应该切换到释放,但相信我,这完全超出了我的控制......它几乎每天都会杀死我的一部​​分灵魂。)

4

1 回答 1

2

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

从我的脑海中,如果我没有记错的话:

  • 调试:与调试 DLL 链接。发布:与发布 DLL 的链接。
  • 调试:编译没有任何优化。发布:编译所有优化。
  • 调试:使用断言 ( ) 编译-D_DEBUGRelease : 编译时不使用断言 ( -DNDEBUG)。
  • 调试:编译/链接调试符号。发布:编译/链接不带调试符号(对性能没有真正的影响)。
  • 原始开发人员对项目配置所做的任何任意更改。

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

于 2012-03-16T14:36:18.263 回答