0

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

谢谢

4

4 回答 4

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

在这个基准测试中,foreach表现优于其他循环类型,并且while被发现表现优于for。我提出这个是因为你会注意到这与我引用的第一个测试相矛盾。

最后,这个基准支持第一个的发现,它whilefor.

结论?没有基准能够模拟您的用例,以至于您应该根据它做出决定,这可能是一个不会实质性地改进您的程序的微优化。使用适合情况的语句,然后编写测试以使用变体对您自己的应用程序进行基准测试。while交换 the和 the是非常简单的for- 尝试它们,看看你会得到什么。然后在你的下一个项目中忘掉这一课,因为它将是独一无二的,再次值得单独测试。

文档

于 2012-06-21T06:15:22.527 回答
1

如果您非常关心代码的速度,请对其进行分析。无论您阅读到有关特定代码片段性能的任何信息(例如,在这样的地方,在您的特定情况下都可能会出错 - 因为一些奇怪的 PHP 解释器怪癖或其他原因。

有大量可供 PHP 程序员使用的分析工具 - 从简单的microtime开始,到完整的分析器工具包(如XDebug )结束。我建议阅读此主题以了解分析的基本准则。

于 2012-06-21T06:14:32.013 回答
0

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

因此,您可以根据此约束立即将您的选择范围缩小到 for/while 或 do-while。尝试使用不适当的构造会导致代码非常难看,而且很可能会变慢。

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

于 2012-06-21T06:06:02.433 回答
0

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

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

所以使用最简洁易读的。

于 2012-06-21T06:05:20.677 回答