《深入理解计算机系统》Programing Optimization

通用的优化措施:

1. for循环里尽可能不放计算;

2. 乘法用加法替代;

3. 避免在循环中使用内存别名(使用指针进行读写),原因是,编译器无法知道是否有指向相同地址的指针,同时也在对该地址进行读写操作,因此每次循环必须重新从内存中读取新值,建议使用全局变量统一操作,最后循环结束后,再统一赋值给指针。

4. 尽量使不同的计算过程无关化,以充分利用流水线/

《深入理解计算机系统》Programing Optimization

通常来讲,cpu寄存器都有上百个寄存器副本,所以分支预测时,会暂时将计算结果存在副本中,如果预测正确,则写入生效副本中;如果预测错误,则直接丢弃寄存器值即可。