Visual C++编译器优化

4

我最近从Dev-c++迁移到了Visual C++ 2010,发现在所有方面都比以前更好,但有一个问题。当我在Dev-c++中使用best-optimization选项编译和执行代码时,编译时间大大缩短,几乎缩短了一半(mingw32),但我无法在Visual C++ 2010中找到任何优化选项。我该如何告诉编译器对代码进行优化?


当您启用优化时,编译时间缩短是奇怪的。我怀疑您在Visual Studio中看不到这一点。启用优化可能需要更长时间来构建。但没关系,因为您不需要经常这样做。 - Cody Gray
当在旧的或较慢的磁盘上运行时,我肯定会看到这种情况发生。当然,这仍然不是您应该期望的行为。 - Mario
1
你正在寻找最快的代码编译选项,可以使用/O2编译器选项(发布版本的默认设置),或者使用/Ox进行完全优化。这些选项相当于Dev-C++中的最佳优化选项。 - Jesse Good
@Jesse:令人困惑的是,/Ox并不比/O2更高级。这让我感到困惑,所以我问了一个相关问题。结果表明,使用/O2可以获得/Ox提供的所有功能,甚至更多,因此你可能应该始终使用/O2,它也是默认选项。您可能需要考虑的另一个选项是/O1,它最小化代码大小,是一种不同于/O2的优化策略。 - Cody Gray
在发布模式下,它给我相同的时间,就像在Dev-C++中一样,但由于项目仍然不完整,我想继续在调试模式下工作,所以我只需单击发布模式并单击生成即可更新版本。对吗?或者有没有办法在调试模式下使其运行得更快(当我单击优化选项时,它显示与/ZI不兼容)?谢谢大家。 - Gambit King
1
@CodyGray:有趣,谢谢你的信息。他们真的需要解雇那个想出命名方案“/Ox(完全优化)”的人 :) - Jesse Good
2个回答

6
右键单击您的项目,选择“属性”。现在确保您当前的配置为“Release”。在窗口的左侧,您应该看到一个带有不同类别的树形视图。优化选项分为C/C++和链接器条目。
另外,请记住,优化意味着结果二进制文件经过了优化,而不是实际构建二进制文件。速度提升可能是由于没有添加调试代码等原因解释,但通常情况下,我更倾向于认为创建具有优化的发布版本比创建调试版本需要更长时间。

1
你不需要去调整任何优化选项。切换到“发布”模式会自动打开默认的优化设置,这已经足够好了,特别是对于新手来说。这些选项可能会让人感到困惑。 - Cody Gray
好的,非常感谢(它在发布模式下工作,但时间并没有显著改善),另外在调试模式下,我已经将优化设置为/ox,但我需要禁用调试功能,我应该在哪里进行设置? - Gambit King
调试信息被放入pdb文件中。在发布模式下,实际的二进制文件中没有调试信息(对于调试模式不确定)。 - Mario
这是一个设置,您可以更改它。默认情况下会将信息放入PDB文件中,但这不是您需要担心的事情。只要不想公开调试信息,请不要发布PDB文件即可。 - Cody Gray

0

我只有VS C++ Express,但在完整版本中应该是一样的...

在“项目”菜单中选择“属性”。这将打开一个对话框,显示所有项目设置。浏览不同的选项,很快就会找到在哪里更改优化。

还要记住,在发布模式下构建时,已经启用了一些优化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接