优化的执行时间

Mon*_*nia 7 c++ optimization gcc compilation

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

Vla*_*adP 1

是的,这很平常。以 -Ox 优化为指导。平均而言,它们会产生广告优化,但很大程度上取决于代码编写的风格、内存布局以及编译器本身。有时,您需要多次尝试和失败才能获得最佳代码。-O2 在大多数情况下确实给出了最好的优化。