感性理解编译优化

Posted sweepy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了感性理解编译优化相关的知识,希望对你有一定的参考价值。

很多人说O2很快,真的吗?

话不多说,先贴图:
环境:
技术图片
WSL Ubuntu 18.04LTS

sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ g++ file.cpp -o file.out
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ vi ./file.cpp
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ time ./file.out

real    0m0.063s
user    0m0.047s
sys     0m0.016s
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ g++ file.cpp -o file.out -O2
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ time ./file.out

real    0m0.013s
user    0m0.000s
sys     0m0.000s
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ g++ file.cpp -o file.out -O3
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ time ./file.out

real    0m0.016s
user    0m0.016s
sys     0m0.000s
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ g++ file.cpp -o file.out -Ofast
sweepy@DESKTOP-M79ULPC:/mnt/c/Users/zljzl/desktop$ time ./file.out

real    0m0.012s
user    0m0.000s
sys     0m0.016s

源代码是这样的(计算1~10000000的平方和)
技术图片

#include<iostream>
using namespace std;
int main(){
    int ans=0;
 for(int i=0;i<10000000;i++){
     ans+=i*i;
 }
 return 0;
}

总而言之,(O(fast))真的很快





以上是关于感性理解编译优化的主要内容,如果未能解决你的问题,请参考以下文章