PHP:一个大回音(或打印)与许多小回音(或打印)

PHP:一个大回音(或打印)与许多小回音(或打印),php,optimization,Php,Optimization,我应该echo一个包含1000行数据的表,我可以echo一个字符串中的所有数据,还是每次echo一行更好?我会逐行回显。这样可以节省内存(输出前无需加载内存中的所有行)。每次回显行,使用更少的缓冲内存和内存(不需要使用变量来保存数据) 根据我对所选答案进行的测试,它显示相反的结果(参见文章的最后三分之一),您应该使用一个大echo语句,并使用单引号而不是双引号,因此PHP不必检查字符串中的变量 支持的简单测试: $bgn = microtime(true); for ($i=0; $i<=

我应该
echo
一个包含1000行数据的表,我可以
echo
一个字符串中的所有数据,还是每次
echo
一行更好?

我会逐行回显。这样可以节省内存(输出前无需加载内存中的所有行)。

每次回显行,使用更少的缓冲内存和内存(不需要使用变量来保存数据)

根据我对所选答案进行的测试,它显示相反的结果(参见文章的最后三分之一),您应该使用一个大echo语句,并使用单引号而不是双引号,因此PHP不必检查字符串中的变量

支持的简单测试:

$bgn = microtime(true);
for ($i=0; $i<=1000; $i++)
{
  echo $i;
}
echo "\n", round(microtime(true)-$bgn, 4), "\n";
unset($bgn);
$bgn = microtime(true);
$b = '';
for ($i=0; $i<=1000; $i++)
{
  $b.=$i;
}
echo $b;
echo "\n", round(microtime(true)-$bgn, 4), "\n";
?>
$bgn=微时间(真);

对于($i=0;$i这取决于您的目标。时间消耗通常不成问题,取决于字段的数量,此操作的内存使用情况也是如此(今天的内存足够大,仅1000行就不会导致任何问题)


我的感觉告诉我,为了进行修改,逐行回显可能更为实际,但我认为这根本不是什么大问题。做你喜欢的事。

这本书很旧,有些已经过时,但你仍然应该阅读


也就是说,除非您已经对其他所有内容进行了大量优化,否则
echo
不太可能成为您的瓶颈。

正如Pekka所说,这无关紧要。请以使您的代码可读性最好的方式进行操作(最好使用模板,而不是在mysql fetch数组循环中使用蹩脚的echo)

当(如果有)它成为一个瓶颈时-首先分析它,然后进行优化。基于现实生活中的数字,而不是谣言

对于特定的1000行表格-分页,傻瓜。只需分页。

让你的应用程序不要做无用的工作。这是优化的真正秘诀。

是的,这篇文章展示了一个非常好的例子,如何使用echos等优化这样一个循环。虽然它没有提到单引号,所以,只有你使用双引号,php尝试在字符串中找到变量,用单引号解析它们otes:没有,所以速度快了一点。我想说的是,你的链接指向了一篇关于PHP操作码的有趣文章。非常有用,即使你对优化不感兴趣。