第一层次的优化是设计好数据结构和算法,其次才是编码技巧
1.优化缺陷
某些情况下编译器会放弃对代码的优化
- 内存别名使用无法优化: 编译器无法确定程序内的指针是否指向同一位置
- 函数调用无法优化: 编译器优化会修改函数调用次数时,编译器会非常小心处理这种情况(可采用内联函数)
2.程序级优化
- 消除低效率的循环
- 减少调用过程
- 消除不必要的内存引用
3.机器级优化
- 循环展开
- 提高并行性
第一层次的优化是设计好数据结构和算法,其次才是编码技巧
某些情况下编译器会放弃对代码的优化
Author: Phi
Link: https://philyc.github.io/2020/csapp%E7%AC%94%E8%AE%B0%E7%AC%AC%E4%BA%94%E7%AB%A0/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可