我真的不知道如何表达标题,所以我尽我所能。
我们有一个问题,我们计算最终脚本(基于 Web)的执行时间。
我们做一个简单的
if(time()-$_SERVER['REQUEST_TIME']>X){
logMe();
}
我们发现有时脚本显示的执行时间要长于 X 秒。
我们 100% 确定这不是 mysql、memcached、sphinx 或任何其他常见的罪魁祸首的问题。请......只是假设它不是“我们的目的”阻止它。
我们甚至在脚本中添加了这个简单的执行时间检查方式,在任何繁重的处理完成之前,仍然有一些命中。主要是远在海外的客户。
所以我认为这一定与输出缓冲区有关。
所以问题如下:
在 php + apache 中,输出缓冲区如何工作?假设您有以下内容:
[ 10KB HTML Body Head ]
[ Mysql query #1 ]
[ 50KB HTML Body ]
[ Mysql query #2 ]
[ 20KB HTML Body Footer ]
在此示例中,假设您有一个最大速度为 2KB/s 的客户端连接。
所以在最理想的情况下,他需要 5 秒才能收到“HTML Body Head”。
这是否意味着执行“Mysql 查询#1”需要 5 秒?
我想你应该已经明白了。缓慢的客户端连接是否会影响处理脚本所需的时间。
更进一步:是否有任何 php.ini 设置会影响这一点,flush()/ob_flush() 是否有影响?
谢谢。