PHP медленный при печати большого количества текста - PullRequest
1 голос
/ 27 сентября 2011

Я сделал ajax-приложение, которое отлично работало на моем локальном dev-сервере, но когда я переместил его в онлайн, один конкретный запрос получил очень медленно .Этот запрос довольно сложный - он загружает много данных из базы данных и создает довольно большой текстовый вывод, около 120kB .Поскольку приложение было написано за короткое время, было много места для оптимизации.Естественно, я пытался найти то, что замедляет мое приложение больше всего - и я был удивлен - это было последнее последнее эхо , которое печатало всю вычисленную информацию.

Я использовал Firebug чтобы измерить время.Запрос занял ~ 100 мс без печати информации, только вычисления, но ~ 400 мс с печатью ... поэтому простая команда echo заняла около 300 мс! Тогда япопробовал PHP microtime () , чтобы получить более точные результаты ... но внезапно не было значительной разницы между печатью и не печатью.Так что я думаю, что проблема в другом - в области отправки текста в Apache, а затем в клиент ... Я не понимаю этого, но где-то читал, что это может быть вызвано небольшим буфером Apache.Могу ли я что-нибудь с этим сделать?Я не думаю, что 120 КБ это слишком много - всего несколько лет назад, во времена разметки таблиц, большинство крупных веб-сайтов имели html-источник такого размера.

Может ли это быть проблемой веб-хостинга?Я мог бы попытаться связаться с ними, но, естественно, было бы легче, если бы я мог решить это сам.

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Ответ действительно прост.Моя скорость загрузки составляет около 300 КБ / с, поэтому загрузка страницы 120 КБ не может быть быстрее, чем ~ 300 мс.Вот и все, и я действительно тупой: D

0 голосов
/ 27 сентября 2011
ob_start();
echo $huge_string;
ob_end_flush();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...