我搜索了许多询问相关信息的问题,但答案并不完全符合我想要的答案。我会尽力解释这个问题。
基本上,在发布模式下运行代码时,编译器似乎会删除大多数冗余或死代码。所以它最终什么都不检查。一些修复是使代码存储到某个变量,但随后编译只是删除了循环并存储了它看起来的最后一个增量。
现在我确实希望进行优化以改进所使用的代码,但我仍然想要它最初所做的一切例如,如果我让它循环代码 100,000 次,我希望它实际执行代码 100,000 次。我不确定如何修改 Visual Studio 2010 上的编译器,以便在发布模式下编译时进行最小的优化。我非常想准确计时,但我不确定如何准确计时。
起初我认为在不调试的情况下在调试中运行可能会解决问题,因为结果与 Java 应用程序的结果相匹配,但在发布模式下运行时结果快得离谱,这让我感到困惑。我不确定 C++ 在优化方面是否更好,或者是否更改了大量代码。
有没有办法也可以反汇编代码并查看编译器将代码编译成什么?这将是我希望看到的另一项测试,但我对这些东西知之甚少,任何朝着正确方向的东西都将不胜感激。好吧,感谢任何能理解我要求的人。我很乐意回答有关手头问题的任何误解或不确定性的任何问题。