我需要输出一个包含1000行数据的表格,我应该将所有数据一次性输出还是逐行输出?
我需要输出一个包含1000行数据的表格,我应该将所有数据一次性输出还是逐行输出?
$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";
?>
第一次运行返回0.0022
,而第二次运行返回0.0007
...然而这只是少量的数据,内存使用非常小。
我会逐行复制。这样可以节省内存(在输出之前不需要加载所有行到内存中)。
每次返回一行数据,在使用更少的缓冲内存和更少的内存方面(您不需要使用变量来保存数据)
基于我对所选答案进行的测试,结果正好相反
这是旧的内容,有些已经过时了,但你仍然应该阅读《一段字符串有多长?》。
话虽如此,除非你已经对其他所有内容进行了大量优化,否则echo
不太可能成为你的瓶颈。
这取决于你的目标。如果字段数量不多,时间消耗通常不是问题,同样对于此操作的内存使用情况也是如此(今天的内存足够大,仅有1000行不会引起任何问题)。
我的感觉告诉我,逐行回显它以进行修改可能更实际,但我认为这并不是什么大问题。做你喜欢的事情吧。
正如Pekka所说的那样,这并不重要。以最好的可读性来编写代码(最好使用模板,而不是在mysql fetch array循环中使用echo),这才是最重要的。
当它成为瓶颈时(如果有的话)-首先对其进行分析,然后再进行优化。基于实际数据,而不是谣言。
至于特定的1000行表格-将其分页,傻瓜式地分页。
使您的应用程序不做无用功。这才是优化的真正秘诀。