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%。

尽管如此,当您认为应该责怪您的代码时,您应该:

  1. 确定您需要优化的用例
  2. 评估您的代码性能
  3. 找到瓶颈
  4. 确定您可以改进的领域,并确定是否值得花时间去改进它们。
  5. 进行代码更改
  6. 返回步骤2

您几乎总是会发现,您需要改进缓存策略和数据库优化(这只是通过其他方式进行的I / O优化),而不是使代码混乱。

以上是 PHP中的FOR循环性能 的全部内容, 来源链接: utcz.com/qa/402180.html

回到顶部