gpt4 book ai didi

c++ - 优化执行时间

转载 作者:可可西里 更新时间:2023-11-01 18:38:17 24 4
gpt4 key购买 nike

由于学校作业,我必须将 C++ 代码转换为程序集 (ARMv8)。然后我必须使用 GCC 的 -O0、-O1、-O2、-O3 和 -Os 优化来编译 C++ 代码,记下时间并与我的汇编代码的执行时间进行比较。因为,我想我知道 -O3 必须比 -O1 和 -O2 快。但是,我知道 -O2 是最快的,然后是 -O1、-O3、-Os、-O0。那是平常的吗? (计算时间约为 30 秒)。

最佳答案

请注意 GCC 许多其他 optimization flags .

不能保证-O3-O2 给出更快的代码;编译器可以应用更多的优化过程,但它们都是启发式的,可能不会成功(甚至会稍微减慢您的特定代码)。因此,-O3 确实会给出一些比 -O2 稍慢的代码(在某些特定输入源代码上)。

您可以尝试更新版本的 GCC(2017 年 11 月的最新版本是 GCC 7,GCC 8 将在几个月后推出)。你也可以试试 better -march=-mtune= 选项。

最后,有了你的 GCC plugin ,您可以添加您自己的优化过程,或更改应用的优化过程的顺序(和集合)(GCC 中有数百种不同的优化过程)。但是您需要大量工作(可能一两年)才能扩展 GCC。

您可以调整优化参数,一些项目 (MILEPOST) 甚至使用机器学习技术来改进它们。

另请参阅我的(旧)GCC MELT documentation 上的幻灯片和引用资料.

关于c++ - 优化执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47440118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com