感性理解编译优化

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))真的很快





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

静态代码分析-概念:敏感性

静态代码分析-概念:敏感性

数学建模学习(92):gurobipy详细入门教程MLPMIP模型仓库调度模型单/多目标优化敏感性分析

后缀自动机感性理解

C生万物 | 常量指针和指针常量的感性理解

《深入理解 Java 虚拟机》读书笔记:晚期(运行期)优化