我应该echo
一个包含1000行数据的表格,我可以echo
一个字符串中的所有数据,还是每次最多echo
行?
答案 0 :(得分:12)
根据http://phplens.com/lens/php-book/optimizing-debugging-php.php(参见文章的后三分之一),您应该使用一个大的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";
?>
首先运行返回0.0022
,而第二次运行返回0.0007
...但是这是一小组数据,内存使用量非常小。
答案 1 :(得分:5)
我会逐行回应。这样可以节省内存(在输出内存之前无需加载内存中的所有行)。
答案 2 :(得分:1)
每次回显行,使用较少的缓冲内存和较少的内存(您不需要使用变量来保存数据)
根据我针对所选答案进行的测试,显示相反的
答案 3 :(得分:1)
这是旧的,其中一些已经过时了,但您仍然应该阅读How Long Is a Piece of String?
尽管如此,除非你已经对其他所有内容进行了大量优化,否则echo
不太可能成为你的瓶颈。
答案 4 :(得分:0)
这取决于你的目标。时间消耗通常不会出现问题,具体取决于字段数,因此此操作的使用情况也是如此(今天的内存足够大,只能导致1000行没有问题)。
我的感觉告诉我,为了进行修改,逐行回应它可能更实际,但我认为这根本不是什么大问题。做你喜欢的事。
答案 5 :(得分:0)
正如佩卡所说,没关系。以使代码最佳可读性的方式(最好使用模板,而不仅仅是在mysql fetch数组循环中使用lame echo)。
何时(如果有的话)它首先成为瓶颈 - 个人资料,然后进行优化。根据现实生活中的数字而不是谣言。
至于特定的1000行表 - 对它进行分页,很傻。只是分页。
让你的应用程序不要做无用的工作。这是优化的真正的秘密。