【问题标题】:php output buffering functions make the page load even slowerphp输出缓冲功能使页面加载更慢
【发布时间】:2014-04-17 15:27:16
【问题描述】:

我有一个从多个来源加载数据的产品搜索页面。为了速度优化,我将 ob_start() 放在页面顶部,并将 ob_end_flush() 放在底部,以便所有输出都被缓冲然后打印。但这会使页面加载速度更慢。它增加了大约 0.3 秒的实际页面加载时间。

任何想法为什么会发生这种情况?

【问题讨论】:

    标签: php caching


    【解决方案1】:

    您为什么首先希望这会加快速度?!

    输出缓冲停止内容被发送到客户端。它会保留所有内容,直到您使用 ob_end_flush 发布它。如果您没有缓冲,内容将在您开始输出后立即发送到客户端。当然,根据定义,输出缓冲会延迟内容的发送。

    【讨论】:

    • 但是我在一些论坛上看到,如果客户端浏览器速度很慢,那么它会延迟数据的接收,并且apache必须打开连接,直到接收到所有数据,所以一次发送数据可能加快整体连接速度。那是错的吗?感谢您的友好回复。谢谢。
    • 对我来说没什么意义。想一想:如果没有缓冲,PHP 会立即将数据交给 Apache,而 Apache 可以开始尽可能快地将数据发送给客户端。使用缓冲 PHP 首先将所有数据存储在内存中(也使用更多资源),而 Apache 什么都不做;然后突然 PHP 转储 Apache 上的所有内容,然后开始向客户端发送数据。显然,当 PHP 将其内存中的数据塞满时,Apache 和客户端什么都不做会出现延迟。
    • 我猜你是对的,这可能就是原因。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    相关资源
    最近更新 更多