当前位置: 首页 > 面试题库 >

PHP中的FOR循环性能

闻人哲茂
2023-03-14
问题内容

当我的研究使我相信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优化),而不是使代码混乱。



 类似资料:
  • 主要内容:for 循环,实例,foreach 循环,实例,实例循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。 for 循环 for 循环用于您预先知道脚本需要运行的次数的情况。 语法 参数: 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)

  • 问题内容: 我第一次不了解PHP。我一直在脚本中使用for循环,while循环,foreach循环。我想知道 哪一个性能更好? 选择循环的标准是什么? 当我们在另一个循环中循环时应该使用哪个? 我一直想知道要使用哪个循环的代码。 很明显,我可以使用while编写上面的代码。希望有人能帮助我找出哪个循环更适合使用。 问题答案: 哪一个性能更好? 没关系 选择循环的标准是什么? 如果只需要遍历对象或数

  • 我正在编写一个计算e^x值的方法。我在python中实现它的方式如下。 这将很好地返回e^x的值。但是,当我尝试在c#中实现相同的方法时,它没有输出与python中相同的值。以下是c#中的实现。 起初,这段代码的输出是一个无穷大符号。为了解决这个问题,我只是减少了循环运行的次数。在c#中,循环只运行10次,代码的输出非常接近于python中循环运行100次的输出。我的问题是,在不同的编程语言中,两

  • 我在写一段代码,其中有一个字符串[]和一个方法,该方法接受这个字符串[]并返回字节[],保持字符串-字节对的位置,其中很少有字节可以为空。最后,我必须对字节进行转换,并从string[]中获取一个键为string,值为转换返回值的映射。这就是我在Java 8流中实现相同功能的方式: 其中productReference是字符串[],ProductSpice[]是字节[]数组。 现在的问题是IntS

  • 本文向大家介绍浅谈php中的循环while、do...while、for、foreach四种循环,包括了浅谈php中的循环while、do...while、for、foreach四种循环的使用技巧和注意事项,需要的朋友参考一下 php中的while循环,循环执行代码块制定的次数,或者当指定的条件为真时循环执行代码块。 ----------------------------------------

  • 我想要一个循环,检查当前的月,12个月在未来和4个月在过去。