优化程序性能
- 程序代码上
- 机器上
程序代码上
1. -Og , -O1 , -O2 , - O3等优化(其中氧一 (-> 缩短底层源码)和氧二最为常用)(用安全和效率换AC)
2. 可以通过时钟周期度量迭代程序的循环性能,通过最小二乘拟合出时间
![@8$TIAF@FA4${7@}FN[[ZF.png](https://cdn.acwing.com/media/article/image/2021/07/31/93617_3478902ef1-@8$TIAF@FA4${7@}FN
[[ZF.png)
图片不知道为什么传不上去,大致就是假定y = mx + b , 求关于 E(m,b) = 求和(y-mx-b)^2的导数为0 , 得到 m , b 的算法
PS:迭代花费时间大于循环展开
3. 代码移动优化
包括识别要执行多次(如循环)但计算结果不会改变的计算。可将计算移动到代码前不会多次计算的部分
4. 减少过程(函数)调用
5. 消除不必要的内存引用
临时变量以及变量的位置
以上优化均不依赖于机器任何特性,仅降低过程调用开销,以及消除重大”妨碍优化的因素“,这些因素为优化编译器带来困难
进一步优化需利用处理器微体系结构优化(底层系统设计)
机器上
实力有限,也暂时用不到,以后有机会再写。。。。continue –