假设我将随机数据从 PHP 回显到浏览器。随机数据总量约为 XGb,回显以 YKb 块的形式完成。不使用 ob_start()。 PHP 和 Apache 缓冲区已满后,echo 调用是否会阻塞(客户端无法以与生成数据相同的速度使用数据)?如果是,PHP 和 Apache 缓冲区的大小是多少?我理解正确吗,这个过程:
- PHP echo 正在将字节发送到 php 输出缓冲区,直到它已满。之后 echo 开始阻塞,直到一些缓冲区被发送到 Apache 并因此被清除
- PHP 正在从其输出缓冲区发送数据,直到 Apache 缓冲区已满。之后,Apache 停止从 PHP 接收数据并等待,直到部分缓冲区发送到客户端并清除。
附:如果您对我要实现的任务的愚蠢感到惊讶,我可以说,我正在为应用了某些流量规则的专用服务器编写小型流量平衡脚本(IN/OUT 流量比率应保持在一定值) 。
这可能与SendBufferSize指示 http://httpd.apache.org/docs/2.2/mod/mpm_common.html#sendbuffersize.
也许这会有所帮助http://fplanque.com/dev/linux/why-echo-is-slow-in-php-how-to-make-it-really-fast http://fplanque.com/dev/linux/why-echo-is-slow-in-php-how-to-make-it-really-fast
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)