PHP中的输出缓冲需要更多资源吗?

当性能很重要,包括服务器内存时,我很好奇如果使用输出缓冲像ob_start(); 在PHP有任何性能命中不使用它? 它使用更多的内存或任何东西来使用它?

在我需要所有内存的高流量网站上,我可以使用memcache和APC以及所有其他服务器活动,但我只是好奇我是否应该使用它,它适用于我的唯一真正原因是重定向页面,发送标题我应该说已经发送标题后,我的网站有标题,正文,页脚文件设置,所以有时我需要重定向取决于什么是正文文件,所以如果标题已显示离子屏幕创建一个问题,使用输出缓冲是1解决方案,但有其他解决方案,所以只是对性能感到好奇


我认为最好在高流量站点上使用它,或者至少将隐式清除关闭,以避免在网络上发送部分响应,因为如果接收器速度太慢,它会减慢脚本的其他部分。

通过一次发送整个响应,您可以释放php脚本使用的所有资源,因此效率更高。


输出缓冲有用有两个原因

  • 为了提高性能,您不必等待网络套接字每次回显时都可用。
  • 为了避免太早发送标题。 一旦你向浏览器发送了一些内容,头文件也必须被发送,完成后,你不能修改它们,例如,如果你想设置一个cookie或改变内容类型。
  • 当然,将所有内容都存储在内存中直到请求结束。 与PHP过程的整体大小相比,这通常应该很小。 也就是说,除非你打算发送大量文件。 如果是这种情况,您可以定期使用ob_flush()和flush()(或暂时禁用缓冲区)来刷新缓冲区,以减少使用的峰值内存。

    在我看来,你应该始终拥有它,并在特殊情况下将其删除。

    链接地址: http://www.djcxy.com/p/43287.html

    上一篇: Does output buffering in PHP require more resources?

    下一篇: exhaustive pattern error haskell