Доктор
Новичок
А я вот сталкивался недавно с такой фишкой, что если аутпут буфферинг выключен или маленький, а выводишь махом большую строку, то скрип ждет, пока клиент ее высосет. Т.е. подобный код
$start = microtime_float();
echo $str; // длинная такая строка
var_dump(microtime_float()-$start);
Давал нереальные результаты.
Причем подобный код:
$start = microtime_float();
for ($i=$a; $i<$b; $i++)
echo $str; // маленькая часть той длинной строки
var_dump(microtime_float()-$start);
Тоже давал нереальные результаты.
А уже такой:
$start = microtime_float();
for ($i=$a; $i<$b; $i++) {
// тут какие-то промежуточные действия
// в некотором количестве, не связанные с выводом...
echo $str; // маленькая часть той длинной строки
// а тут еще какие-то промежуточные действия
// в некотором количестве, не связанные с выводом...
}
var_dump(microtime_float()-$start);
Уже давал то, что и надо. Все это с одними настройками на сервере. Стоило сделать аутпут буфферинг больше, чем суммарная длина строки, как все 3 варианта предсказуемо начинали работать быстро.
Эта картинка вообще наблюдается лишь на некоторых серверах. Т.е. на некоторых хоть с аутпут буфферингом 0 все работало, как положено.
Т.е. подозрение, что дело в каких-то еще настройках, но, скорее всего, даже не ПХП, а, к примеру, апача... Не докопался в каких.
Никто не подскажет?
Update: кстати, даже если это настройки какие-то, то не понятно, почему код номер 3 в этом случае работал как положено...
$start = microtime_float();
echo $str; // длинная такая строка
var_dump(microtime_float()-$start);
Давал нереальные результаты.
Причем подобный код:
$start = microtime_float();
for ($i=$a; $i<$b; $i++)
echo $str; // маленькая часть той длинной строки
var_dump(microtime_float()-$start);
Тоже давал нереальные результаты.
А уже такой:
$start = microtime_float();
for ($i=$a; $i<$b; $i++) {
// тут какие-то промежуточные действия
// в некотором количестве, не связанные с выводом...
echo $str; // маленькая часть той длинной строки
// а тут еще какие-то промежуточные действия
// в некотором количестве, не связанные с выводом...
}
var_dump(microtime_float()-$start);
Уже давал то, что и надо. Все это с одними настройками на сервере. Стоило сделать аутпут буфферинг больше, чем суммарная длина строки, как все 3 варианта предсказуемо начинали работать быстро.
Эта картинка вообще наблюдается лишь на некоторых серверах. Т.е. на некоторых хоть с аутпут буфферингом 0 все работало, как положено.
Т.е. подозрение, что дело в каких-то еще настройках, но, скорее всего, даже не ПХП, а, к примеру, апача... Не докопался в каких.
Никто не подскажет?
Update: кстати, даже если это настройки какие-то, то не понятно, почему код номер 3 в этом случае работал как положено...