感性理解编译优化

很多人说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)\)真的很快

posted @ 2020-07-22 14:44  SweepyZhou  阅读(172)  评论(0)    收藏  举报