gpt4 book ai didi

php - PHP 中的 FOR 循环性能

转载 作者:行者123 更新时间:2023-12-03 01:07:15 24 4
gpt4 key购买 nike

由于我的研究使我相信 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() 方法本身相当快,但调用该函数仍然存在一些开销。通过将其移出循环,您将执行所谓的“loop invariant code motion ”,或者有时是“提升”。

有一整个family of optimizations像这样的知识很有趣。

话虽如此,但过分强调这一点是没有好处的。在您的示例中,回显输出的 I/O 可能是您通过“优化”节省的 10 倍。如果您在循环内执行任何其他操作,则优化的意义会越来越小。

我不想成为一个扫兴的人,但对于 90% 以上的代码来说,性能不是问题。尤其是当您谈论 Web 应用程序时,这些应用程序一开始就有超过 90% 的 I/O。

不过,当您认为应该归咎于您的代码时,您应该:

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

您几乎总会发现需要改进缓存策略和数据库优化(这只是另一种方式的 I/O 优化),而不是摆弄代码。

关于php - PHP 中的 FOR 循环性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com