假设我$variable
持有超过500 kb的信息。
while ($row = mysqli_fetch_assoc($selectFromTable))
{
$variable .= "<p>$row[info]</p>";
}
或
while ($row = mysqli_fetch_assoc($selectFromTable))
{
echo "<p>$row[info]</p>";
}
明智优化,最好是echo
信息,而不是将其保存到variable
?
我无法决定,因为我无法看到性能上的差异,因为我不知道在监控响应时间时使用什么工具。有什么建议吗?
即使性能差异不足,我还是想了解如何优化编码。
答案 0 :(得分:3)
您列出的两段代码之间的速度或内存使用量没有显着差异。它们都构建了一个新字符串,其中包含$row['info']
HTML元素中包含的<p>
值。
您可以将每个字符串作为单个参数传递给echo
:
echo "<p>", $row['info'], "</p>";
这可以避免创建新字符串,使用更少的内存并运行得更快(除非您在循环中执行数千次,否则改进速度并不显着)。
了解echo
语言构造。
另请注意,$row[info]
不正确。正确的方法是$row['info']
。这是explained in the documentation为什么。
答案 1 :(得分:0)
您需要对变量执行某些操作,而不是仅在第一个循环中保存一些数据。
对于当前设置,只有可变存储的第一个循环将始终更快,因为使用IO(输入/输出)设备的操作很慢,这意味着回显到屏幕中的打印输出。
但是如果你在变量语句之后添加一个echo,那么只有单个echo的循环显然会更快。