PHP中的FOR循环性能
当我的研究使我相信for
循环是PHP中最快的迭代构造…为了使它更清晰时,您认为以下哪个会更快?
示例一
for ($i = 0; $i < count($myLargeArray); $i++ ) { echo myLargeArray[$i];
}
示例二
$count = count($myLargeArray);for ($i = 0; $i < $count; $i++ ) {
echo myLargeArray[$i];
}
我的逻辑是,在示例中的每次迭代中,在每次迭代中访问myLargeArray的长度比在示例二中访问简单的整数值要昂贵。那是对的吗?
回答:
第一种方法较慢,因为count()
必须在循环的每次迭代中都调用该函数。该count()
方法本身非常快,但是调用该函数仍然有一些开销。通过将其移动到循环之外,您正在执行所谓的“
循环不变代码运动
”,有时甚至是“提升”。
像这样的一整套优化都值得您学习。
说了这么多,很少需要为此强调太多。在此处的示例中,回显输出的I / O可能是通过“优化”保存的I /
O的10倍。而且,如果您在循环中根本不执行任何其他操作,则优化的意义将越来越小。
我不希望自己被弄湿,但是对于您90%以上的代码来说,性能都是没有问题的。尤其是当您谈论Web应用程序时,首先要使用的I / O超过90%。
尽管如此,当您认为应该责怪您的代码时,您应该:
- 确定您需要优化的用例
- 评估您的代码性能
- 找到瓶颈
- 确定您可以改进的领域,并确定是否值得花时间去改进它们。
- 进行代码更改
- 返回步骤2
您几乎总是会发现,您需要改进缓存策略和数据库优化(这只是通过其他方式进行的I / O优化),而不是使代码混乱。
以上是 PHP中的FOR循环性能 的全部内容, 来源链接: utcz.com/qa/402180.html