C 语言性能优化:移除循环体中的重复运算
在循环体或者循环条件检查中运算结果始终不变的运算,只需要在循环之前运算一次即可,不需要每次都重复运算。比如,如下代码中的 strlen(),在 for()循环中每次循环条件检查时,都会重新计算一次长度,因为长度是不变的,所以多次重复计算长度是不必要的,浪费了 CPU 性能。
复制代码
对应的汇编代码如下:
修改的方法就是,将 strlen()移出 for()循环,放在循环之前执行一次即可。
复制代码
对应的汇编代码如下:
在循环体或者循环条件检查中运算结果始终不变的运算,只需要在循环之前运算一次即可,不需要每次都重复运算。比如,如下代码中的 strlen(),在 for()循环中每次循环条件检查时,都会重新计算一次长度,因为长度是不变的,所以多次重复计算长度是不必要的,浪费了 CPU 性能。
对应的汇编代码如下:
修改的方法就是,将 strlen()移出 for()循环,放在循环之前执行一次即可。
对应的汇编代码如下:
评论