我目前正在用PHP创建一个套接字服务器,我想知道哪一个在整个过程中使用起来会更快。我听说for循环比while循环更快,但我不知道做什么。
由于
答案 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
。
结论?没有基准能够模仿您的用例,只要您应该根据它做出决定,这可能是一个微观优化,不会对您的计划有实质性的改进。使用适合该情况的语句,然后编写测试以使用变体对您自己的应用程序进行基准测试。交换while
和for
非常简单 - 尝试两者并看看你得到了什么。然后为你的下一个项目忘掉那个课程,因为它将是独一无二的,并且值得进行单独的测试。
<强>文档强>
答案 1 :(得分:1)
如果您非常关心代码的速度,个人资料。无论你读到什么特定的代码片段的性能(例如像this这样的地方),在你的特定情况下可能会出错 - 因为一些奇怪的PHP解释器怪癖,或者什么。
PHP程序员可以使用大量的分析工具 - 从简单的microtime开始,以XDebug等完整的分析工具包结束。我建议阅读this topic了解分析的基本准则。
答案 2 :(得分:0)
本身没有区别,因为它们基本上只是编写循环的不同方式,直接取自C。
唯一可能影响的是评估条件的次数,但您可以自己计算。
因此,请使用最简洁,最易读的内容。
答案 3 :(得分:0)
使用适合您目的的任何东西。 for循环和while循环用于循环,首先检查条件。 do-whiles保证代码至少运行一次。
因此,您可以立即根据此约束将选择范围缩小到/ while或do-while。尝试使用不合适的构造会导致非常难看的代码,无论如何都很慢。
在for和while之间,我认为没有任何区别。即使你正在写一个科学图书馆,这也几乎不会引人注意(如果有的话)。一般准则是:for循环用于迭代事物,而循环用作其他通用循环。