打印大量文本时PHP很慢

时间:2011-09-27 02:07:34

标签: php performance apache echo

我制作了一个ajax应用程序,它在我的本地开发服务器上运行得很好,但是当我将它移到网上时,一个特定的请求非常慢。这个请求非常复杂 - 它从数据库中加载了大量内容,并创建了非常大的文本输出,大约 120kB 。由于应用程序是在短时间内编写的,因此存在大量优化空间。当然,我试图找到最让我的应用放慢速度的东西 - 我很惊讶 - 这是最后一个最后的回声,它打印了所有计算的信息。

我使用 Firebug 来衡量时间。该请求花了 ~100ms 而没有打印信息,只是计算,但 ~400ms 打印...所以简单的echo命令花了 300ms!然后我尝试了PHP的 microtime()来获得更精确的结果......但是突然间打印和打印之间没有显着差异。所以我猜问题是在其他地方 - 在向Apache发送文本然后到客户端的区域......我不明白这个东西,但我在某处读到这可能是由小的Apache缓冲区引起的。我能为此做些什么吗?我不认为120kB太多了 - 就在几年前,在表格布局时,大多数大型网站都有这种大小的html源码。

这可能是网站主办的问题吗?我可以尝试联系他们,但自然如果我能自己解决这个问题会更容易。

2 个答案:

答案 0 :(得分:1)

答案很简单。我的下载速度约为300kB / s,因此下载120kB页面的速度不能超过300ms。这就是全部,我真的很蠢:D

答案 1 :(得分:0)

ob_start();
echo $huge_string;
ob_end_flush();