相关疑难解决方法(0)

调试和发布版本之间的性能差异

我必须承认,通常我没有在程序中调试DebugRelease配置之间进行切换,我通常选择调试配置,即使程序实际部署在客户端也是如此.

据我所知,如果不手动更改这些配置,这些配置之间的唯一区别是DebugDEBUG定义常量,并且Release已检查Optimize代码.

所以我的问题实际上是双重的:

  1. 这两种配置之间是否存在很多性能差异.是否有任何特定类型的代码会在这里造成性能上的巨大差异,或者它实际上并不那么重要?

  2. 是否有任何类型的代码可以在Debug配置下正常运行,可能在Release配置下失败,或者您可以确定在Debug配置下经过测试和正常工作的代码在Release配置下也能正常工作.

.net c# debugging performance configuration

273
推荐指数
7
解决办法
6万
查看次数

编译器优化会引入错误吗?

今天我和我的一个朋友进行了讨论,我们就"编译器优化"进行了几个小时的讨论.

我辩护说,有时,编译器优化可能会引入错误或至少是不良行为.

我的朋友完全不同意,他说"编译器是由聪明人构建并做聪明的东西",因此永远不会出错.

他根本没有说服我,但我不得不承认我缺乏现实生活中的例子来强化我的观点.

谁在这?如果是的话,您是否有任何现实生活中的例子,编译器优化会在生成的软件中产生错误?如果我错了,我应该停止编程并学习钓鱼吗?

compiler-construction optimization compiler-optimization

68
推荐指数
10
解决办法
2万
查看次数

程序在调试时正确运行但不是吗?

可能重复:
调试模式中不存在发布版本中的错误的常见原因

有时我会遇到这样一种奇怪的情况,即程序在正常运行时运行不正确,它会弹出终止对话框,但是在调试时正确.当我想使用调试器查找代码中的错误时,这确实让我很沮丧.

你有没有见过这种情况,为什么?

更新:

为了证明有逻辑原因会导致如此令人沮丧的情况:

我认为一个很大的可能性是堆访问volidation.我曾经编写了一个分配一个小缓冲区的函数,但后来我走出了boudary.It将在gdb,cdb等中正确运行(我不知道为什么,但它确实运行正确);但正常运行时异常终止.

我正在使用C++.

我不认为我的问题与上述问题重复.

那个是发布模式和调试模式之间的比较,但我的是在调试和不调试之间,它有一个单词heisenbug,正如许多其他人所指出的那样.

谢谢.

c++ debugging

14
推荐指数
2
解决办法
1万
查看次数