原理
CPU在处理不同指令的时候花费的指令周期是不同的,移位运算和加减运算只需要1个指令周期,而乘法运算需要3个指令周期,除法运算需要6~20个指令周期。因此尽可能使用指令周期短的指令来实现相同功能,能够有效提高程序运行速度。
修改方式
- 使用移位运算替换乘除运算
修改前:
int a = 8;
int b = 2;
int c = a / b;
int d = a * b;
修改后:
int a = 8;
int c = a >> 1;
int d = a << 1;
- 使用乘法运算替换除法运算
修改前:
float a = x / 2.13;
修改后:
const float b = 1.0 / 2.13;
float a = x * b;