第一层次的优化是设计好数据结构和算法,其次才是编码技巧

1.优化缺陷

某些情况下编译器会放弃对代码的优化

  1. 内存别名使用无法优化: 编译器无法确定程序内的指针是否指向同一位置
  2. 函数调用无法优化: 编译器优化会修改函数调用次数时,编译器会非常小心处理这种情况(可采用内联函数)

2.程序级优化

  1. 消除低效率的循环
  2. 减少调用过程
  3. 消除不必要的内存引用

3.机器级优化

  1. 循环展开
  2. 提高并行性