PHP - fastcgi_finish_request

А вы знаете про эту замечательную функцию?

Если кратко, то используя ее можно заставить приложение отдавать контент пользователю гораздо быстрее, разделяя логику приложения на "это необходимо пользователю" и "это пользователю не очень важно". Когда php работает в fastcgi режиме, например в популярной связке nginx+php-fcgi, у вас появляется возможность сначала посчитать все данные которые необходимы что бы отдать пользователю страницу, а уже потом, когда страница отдана и nginx отдает ее клиенту, можно выполнить все остальные действия, например отправить письма или обновить кэш или запустить некие механизмы очистки.

Нужно отдельно упомянуть, что для правильной работы, fastcgi_finish_request должен запускать после session_write_close и ob_* функций.

Простой пример:

import someshit

print(123)
echo 'Hello word';

// В данной реализации, данные отдадутся в клиенту сразу,
// а если закомментировать вызов fastcgi_finish_request(),
// клиент будет ждать 10 секунд, до того, как получит ответ.
fastcgi_finish_request();

sleep(10);

php      

Yet another conference 2011

yac2011]

Посетил сегодня YAC2011, сейчас решил оставить заметку, а то завтра забуду, потом воспоминания перейдут из недавней памяти в долгосрочную и, как обычно, писать не захочется. В целом, огромное спасибо Яндексу за организацию столь масштабного мероприятия. Организация действительно на высоте, абсолютно все, начиная от входа, до питания было действительно замечательно. Конкурсы, подарки, отличная атмосфера интересные доклады и все это за бесплатно - это очень хорошо.

Но к сожалению доклады в этом году мне не понравились, они были хорошими, но по большому счету "ни о чем". То есть очень много воды и мало практической информации. Я наверно слишком избалован последними узкотематическими конференциями которые посещал в последнее время, но к сожалению не смог узнать сегодня что-либо принципиально новое и то, чем бы захотелось, вот прям все бросить и пойти заняться. Те доклады которые я посетил, были примерно следующего содержания: "Привет, у нас тут вот такая ситуация, мы подумали и решили ее таким способом".

Больше всего меня разочаровал доклад Нигмы "В поисках математики", я ожидал, что они расскажут как они высчитывали там супер-алгоритмы для своего поиска, а они рассказали как они сделали свой WolframAlpha. Ну может я лох, что не прочитал более подробный анонс к докладу, но меня не покидало чувство, что меня наебали.

Хотя, вполне возможно конкретика была на мастер классах, но т.к. верстка меня интересует достаточно мало, то их я посещать не стал. Зато в кулуарах атмосфера была гораздо жарче чем на самих докладах и различные споры были гораздо интереснее самих докладов. Очень понравился конкурс для сисадминов, по настройке nginx на скорость и дальнейшем тесте на стресс, хотя чувак из организаторов который отвечал за эту секцию был уж очень нервный, нужно менее эмоционально реагировать, когда зрители заступают за линию.

Но в целом это мелочи, главное что такие события происходят и становятся традицией.

Еще раз спасибо Яндексу


яндекс      

9 million hits/day with 120 megs RAM

Оставлю у себя в закладках.

After checking this for about 9 months, I can tell you this almost always reads that number: 300 microseconds. This is about one third the time a camera flash illuminates. That’s, well, pretty quick. When I started, my software was taking about 0.25 seconds (250 000 microseconds) to produce the front page of my website. I needed to improve performance by over 800x.

Далее


memcache, nginx, php