php代码性能优化小技巧

2019-03-25  本文已影响0人  BigFish__

技巧1

不要在循环体里面通过countstrlen等函数对一个外部变量进行求值,而应该在循环体外部预先计算并赋值给新的变量,然后在循环体内部使用时引用这个新变量。

这样做的原因是zend引擎在解释执行php代码的时候不会像其他语言那样做代码优化,而总是会按照开发者所书写的那样去执行。

例如代码:

$target = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'];
$flag = true;
for ($i = 0; $i < count($target); $flag && $i++) {
  //
}

其他的预编译语言, 它的编译器也许会做优化, 把count函数提取到前面去,然后再执行循环。而对于PHP来说则不会做这样的优化,那么每一次迭代都会计算一次count,带来性能上的损耗。

遇到这种情况,我们编写代码的时候,最好将count计算放到循环体外部计算,赋值给一个新的变量:

$target = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'];
$flag = true;
$targetLen = count($target);
for ($i = 0; $i < $targetLen; $flag && $i++) {
  //
}

参考资料
PHP对程序员的要求更高

待续!

上一篇 下一篇

猜你喜欢

热点阅读