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