PHP:哪个更快:while,while或for循环

时间:2012-06-21 06:02:02

标签: php loops micro-optimization

我目前正在用PHP创建一个套接字服务器,我想知道哪一个在整个过程中使用起来会更快。我听说for循环比while循环更快,但我不知道做什么。

由于

4 个答案:

答案 0 :(得分:3)

根据您使用的基准,do循环显示速度稍快:

http://www.ebrueggeman.com/blog/php_benchmarking_loops

Test            Avg Execution Time  
for loop        23.44 ms
while loop      24.65 ms
do while loop   22.96 ms

在此benchmark中,foreach显示超出其他循环类型,并且while被发现超出for。我提出这个问题是因为你会注意到这与我引用的第一个测试相矛盾。

最后,this benchmark支持第一个的结果,while略快于for

结论?没有基准能够模仿您的用例,只要您应该根据它做出决定,这可能是一个微观优化,不会对您的计划有实质性的改进。使用适合该情况的语句,然后编写测试以使用变体对您自己的应用程序进行基准测试。交换whilefor非常简单 - 尝试两者并看看你得到了什么。然后为你的下一个项目忘掉那个课程,因为它将是独一无二的,并且值得进行单独的测试。

<强>文档

答案 1 :(得分:1)

如果您非常关心代码的速度,个人资料。无论你读到什么特定的代码片段的性能(例如像this这样的地方),在你的特定情况下可能会出错 - 因为一些奇怪的PHP解释器怪癖,或者什么。

PHP程序员可以使用大量的分析工具 - 从简单的microtime开始,以XDebug等完整的分析工具包结束。我建议阅读this topic了解分析的基本准则。

答案 2 :(得分:0)

本身没有区别,因为它们基本上只是编写循环的不同方式,直接取自C。

唯一可能影响的是评估条件的次数,但您可以自己计算。

因此,请使用最简洁,最易读的内容。

答案 3 :(得分:0)

使用适合您目的的任何东西。 for循环和while循环用于循环,首先检查条件。 do-whiles保证代码至少运行一次。

因此,您可以立即根据此约束将选择范围缩小到/ while或do-while。尝试使用不合适的构造会导致非常难看的代码,无论如何都很慢。

在for和while之间,我认为没有任何区别。即使你正在写一个科学图书馆,这也几乎不会引人注意(如果有的话)。一般准则是:for循环用于迭代事物,而循环用作其他通用循环。