gcc 优化标志 -O3 使代码比 -O2 慢

2021-12-18 00:00:00 gcc optimization c++ x86

我找到了这个话题 为什么处理排序数组比处理未排序数组更快?.并尝试运行此代码.我发现奇怪的行为.如果我使用 -O3 优化标志编译此代码,则运行需要 2.98605 秒.如果我用 -O2 编译它需要 1.98093 sec.我尝试在同一台机器上的同一环境中多次运行此代码(5 或 6 次),我关闭了所有其他软件(chrome、Skype 等).

gcc --versiongcc (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2版权所有 (C) 2014 Free Software Foundation, Inc.这是免费软件;请参阅复制条件的来源.没有保修单;甚至不是为了特定目的的适销性或适合性.

所以请你向我解释为什么会发生这种情况?我阅读了 gcc 手册,我看到 -O3 包括 -O2.谢谢你的帮助.

附注添加代码

#include <算法>#include <ctime>#include int main(){//生成数据const unsigned arraySize = 32768;整数数据[数组大小];for (unsigned c = 0; c = 128)总和 += 数据 [c];}}double elapsedTime = static_cast(clock() - start)/CLOCKS_PER_SEC;std::cout <<elapsedTime<
		

相关文章