加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP / Apache中的输出缓冲块如何工作?

发布时间:2020-12-13 17:02:24 所属栏目:PHP教程 来源:网络整理
导读:假设我正在回应从 PHP到浏览器的随机数据.随机数据的总量约为XGb,回声以YKb块的形式完成.没有使用ob_start().在PHP和Apache缓冲区已满后,echo调用是否会阻塞(客户端无法以与生成相同的速度消耗数据)?如果是这样,PHP和Apache缓存的大小是多少?我是否理解正
假设我正在回应从 PHP到浏览器的随机数据.随机数据的总量约为XGb,回声以YKb块的形式完成.没有使用ob_start().在PHP和Apache缓冲区已满后,echo调用是否会阻塞(客户端无法以与生成相同的速度消耗数据)?如果是这样,PHP和Apache缓存的大小是多少?我是否理解正确,过程如下:

> PHP echo将字节发送到php输出缓冲区,直到它满了.之后,echo开始阻塞,直到某个缓冲区被发送到Apache并因此被清除
> PHP从其输出缓冲区发送数据,直到Apache缓冲区已满.之后,Apache停止从PHP接收数据并等待,直到部分缓冲区被发送到客户端并清除.

附:如果你对我将要实现的任务的愚蠢感到惊讶,我可以说,我正在为一个专用服务器编写小流量平衡脚本,并应用了某些流量规则(IN / OUT流量比应保持在一定值) .

解决方法

这可能与 SendBufferSize Directive有关.

也许这会有所帮助
http://fplanque.com/dev/linux/why-echo-is-slow-in-php-how-to-make-it-really-fast

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读