Я действительно не знал, как произнести название, поэтому я сделал все, что мог.
у нас есть проблема, при которой мы рассчитываем окончательное время выполнения скрипта (через Интернет).
мы делаем простое
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 ]
в этом примере представьте, что у вас установлено клиентское соединение со скоростью 2 КБ / с.
поэтому в самой идеальной ситуации ему потребуется 5 секунд, чтобы получить "HTML Body Head" .
означает ли это, что пройдет 5 секунд, прежде чем "Mysql query # 1" будет выполнен?
Я думаю, вы поняли идею. Влияет ли медленное клиентское соединение на длительность обработки сценария.
еще больше: влияют ли на это какие-либо настройки php.ini, а flush () / ob_flush ()?
спасибо.