2013-06-27 56 views
1

我遇到了选项C/C++ - >常规 - >优化大小或速度。 我想知道如果我选择速度选项而不是尺寸。他们会有任何缺点看到除尺寸之外。默认不是。如果我选择Favor Fast Code /OtVisual Studio 2010 - 优化大小或优化速度

+0

[这](http://msdn.microsoft.com/en-us/library/f9534wye.aspx)可以帮助你!我过去都使用过这两种方法,并且使用快速代码对您的尺寸有一定影响,但不会造成太大影响。如果你有一个严格的规格你必须小心。关于您的资源利用率。 – ha9u63ar

回答

1

如果我没有关于此编译器设置的详细知识(我通常喜欢快速代码并且再也没有考虑过它),我会看到这可能是什么影响:

在某些处理器上,在特定时间执行某些操作可能会导致停顿。例如,在写入完整寄存器(AL)之后立即访问完整寄存器(RAX)。虽然现代处理器通常可以通过对指令进行重新排序来解决这些问题,但有些时候它们仍然是不可避免的。

我怀疑通过这个设置,编译器有时会插入非操作指令来试图阻止这些停顿的发生。一般来说,执行一些无操作仍然比拖延更快。

很明显,这些禁止操作会让你的代码变大,这可能会导致更多的指令缓存提取(这可能会严重影响非常严密的内部循环的性能 - 但这些再次更可能首先停止),但不应该有任何其他不利影响。

我可以给任何人提供这样的问题的最佳建议是尝试不同的设置并通过分析器运行代码,看看你是否得到明显不同的结果。

0

1.如果你想优化代码的使用方式,如果你正在使用release build,那么最大速度(/ O2)选项默认打开并且相当于快速代码(/ Ot) 2 。现在,如果您更改Favor的大小或速度选项以支持bu默认的'Both',那么您可以看到可执行文件的大小发生了巨大变化。

这可能有助于https://msdn.microsoft.com/en-us/library/8f8h5cxt(v=vs.90).aspx