窥孔优化是对一小部分代码执行的一种代码优化。它是在一段代码中的非常少的一组指令上执行的。
The small set of instructions or small part of code on which peephole optimization is performed is known as peephole or window.
它基本上是在替换理论上工作的,在替换理论中,一部分代码被更短,更快的代码替换,而输出不变。
窥孔是机器相关的优化。
窥孔优化的目标:
窥孔优化的目标是:
- 为了提高性能
- 减少内存占用
- 减少代码大小
窥孔优化技术:
- 冗余加载和存储消除:
在这种技术中,消除了冗余。Initial code: y = x + 5; i = y; z = i; w = z * 3; Optimized code: y = x + 5; i = y; w = y * 3;
- 恒定折叠:
可以由用户自己简化的代码也得到了简化。Initial code: x = 2 * 3; Optimized code: x = 6;
- 强度降低:
消耗较高的执行时间的运算符通过运算符消耗较少的执行时间更换。Initial code: y = x * 2; Optimized code: y = x + x; or y = x << 1; Initial code: y = x / 2; Optimized code: y = x >> 1;
- 空序列:
删除无用的操作。 - 合并操作:
几个操作由一个等效操作代替。