启用优化后,C ++代码“应该”以多快的速度运行?

问题描述 投票:0回答:1

我有一个使用g ++进行编译且没有任何选项的程序,运行时间约为1分钟。但是,使用-O3进行编译会使它在大约1-2秒内运行。

我的问题是,有这么快的速度是否正常?还是我的代码可能太糟糕了,以至于优化可能会占用很多时间。显然,我知道我的代码并不完美,但是由于速度如此之快,我开始认为它比我想象的还要糟糕。请告诉我“正常”的加速量是什么(如果是这样的话),并且加速过多是否意味着可以(而且应该)手动(而不是依靠编译器)轻松地优化不良代码。

c++ performance optimization g++
1个回答
0
投票

启用优化功能后,C ++代码“应该”以多快的速度运行?

理论上:不一定有任何速度差异。速度差也没有上限。 C ++语言只是没有在优化与缺少优化之间指定区别。

实际上:这取决于。一些程序比其他程序可以从优化中获得更多收益。有些行为比其他行为更容易证明。一些优化甚至可能使程序变慢,因为编译器无法了解运行时可能发生的一切。

... 1分钟... [优化]使它在大约1-2秒内运行。

我的问题是,有这么快的速度是否正常?

这完全正常。您不能以为自己总是会得到尽可能多的进步,但这并非与众不同。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.