PHP输出缓冲 - 听起来像个坏主意,是吗?

Aar*_*ron 26 php performance output-buffering

只想在php输出缓冲中挑选专家的大脑.有些时候我出于某种原因想要实现它,但总是设法重新安排我的代码以解决它.

我避免使用它,因为它听起来会花费资源.我的意思是,如果他们能为编码器提供如此出色的灵活性,为什么他们不总是缓冲输出?我能想到的唯一答案是:因为不缓冲它可以节省大量资源,并且通过良好的编码实践你不应该需要它.

我离开这里了吗?

小智 21

根据我的经验,对性能没有显着影响.我也找不到关于这个主题的一致答案 - 有些人声称几乎没有任何打击性能,而有些人说有一个轻微但重要的影响.甚至还有一个关于php.net的评论,暗示缓冲增加了与多个输出函数相比的性能,而不是我已经验证了这个或任何东西.

我认为是否缓冲的问题更多地与应用程序的预期用途有关.如果要在发送输出之前压缩输出,或者如果要在代码中确切地控制输出的时间和位置,则缓冲很有意义.由于添加缓冲不需要花费太多精力,您可以尝试一下 - 如果需要,可以相对容易地将其删除.


tim*_*dev 8

我认为恰恰相反.除非遇到真正需要它的情况,否则不缓冲输出是一个坏主意.例如,一个将创建大量输出的脚本.

在大多数情况下,烧掉一堆程序员的时间来节省一些未知数量的(廉价)内存听起来像浪费资源.


eas*_*ent 5

如果您处于在标题之前输出内容的情况,则需要将其填充到缓冲区中,否则页面将错误输出内容在标题之前输出.这种情况发生在我的共享库中,没有足够的时间进入并进行适当的修复以启动.这是其中一个标记为// TODO/FIXME然后返回并在以后使其正常.