想知道是否有人知道这些方法中的任何一种是否会更快地产生输出:
Method 1
for ($i=1;$i<99999;$i++) {
echo $i, '<br>';
}
或
Method 2
for ($i=1;$i<99999;$i++) {
$string .= $i . '<br>';
}
echo $string;
感谢您提供任何意见。
答案 0 :(得分:4)
方法1使用更少的内存和CPU并且“更快”(减少服务器负载) 但输出瓶颈很可能是浏览器下载速度。
如果您不缓冲输出,浏览器可以更快地开始下载样式表,图像等 (当您的脚本正在等待某些查询结果时)
查看PHP Optimalization或http://code.google.com/speed/articles/optimizing-php.html上的答案以获取更多提示。
答案 1 :(得分:3)
方法1似乎更快。方法2将为循环的每次迭代吐出一堆CONCAT
操作码,并且在你准备好发送它之前,将在内存中构建非常长的字符串。另一方面,方法1将是每个循环两个ECHO
操作码,然后PHP /您的网络服务器可以在完成之前将内容刷新到客户端,如果它想要的话。
当然,如果您关注微优化,那么通过使用操作码缓存,缓存代理或类似hiphop之类的东西,您将获得更好的性能。
答案 2 :(得分:0)
我已经读过,最快的方法是启用output buffering并做许多回声。 但是,我没有确认这一说法的基准。
无论如何,我认为这是微优化领域。差异可能是可衡量的,但微不足道。正如@Coronatus上面评论的那样,如果您的应用对性能敏感,那么您将不会使用PHP!
答案 3 :(得分:0)
如果您想进行微优化,请将$ i ++改为++ $ i