Небуферизованные запросы: снижаем потребление памяти WordPress

Пиковое потребление оперативной памяти можно снизить приблизительно два раза и практически бесплатно. В чём секрет? В использовании правильных функций для работы с базой данных.

Опытные программисты знают, что API предоставляет два варианта работы с результатом запроса:

  1. Последовательная обработка результата — при этом не происходит никакой буферизации результата, данные отдаются от сервера клиенту, минуя временные таблицы и буфера. В этом случае обработка результатов может производиться только последовательно.
  2. Буферирование результата запроса — результат полностью читается во временный буфер, что позволяет осуществлять произвольный доступ к результату.

Далее »

Автор: Wandering Soul, опубликовано в: WordPress, комментариев: нет
2
Сен
2010

DoS для PHP через imap_fetchbody

Как оказалось, если передать функции imap_fetchbody() параметр $secton, длина которого больше 1004 байт, падает по segmentation fault. На некоторых конфигурациях с применением некоторых усилий (подробности, понятное дело, разглашаться не будут) получалось вместе с положить и Apache. Далее »

Автор: Wandering Soul, опубликовано в: PHP, комментариев: 1
16
Авг
2010

Быдлокодеры хреновы :-(

Возился сейчас с расширением Memcache; после очередного изменения кода сервер ушёл в глухую защиту и отказался реагировать на внешние раздражители. Далее »

Автор: Vladimir, опубликовано в: PHP, комментариев: 3
27
Март
2010

Исправление ошибки с поддержкой VERP в PHPMailer

PHPMailer — класс для отправки почты из ; используется многими известными приложениями, в том числе и .

VERP — техника, упрощающая автоматическое определение и удаление email-адресов из списков рассылки, сообщения которым не могут быть доставлены.

Поддержка VERP в хоть и реализована, но не работает. Далее »

Автор: Vladimir, опубликовано в: PHP, комментариев: нет
2
Фев
2010

Патч для php-cgi, позволяющий конфигурировать значение listen backlog

По умолчанию значение listen backlog в -cgi жёстко задано — 128. Это означает, что не сможет обработать более 128 запросов одновременно (точнее, что очередь запросов не сможет превысить данного значения). Я столкнулся с тем, что 128 — это мало.

Для тех, кто столкнулся с данной проблемой, но по каким-либо причинам не хочет/не может поставить -fpm (в котором backlog конфигурируется), я сделал небольшой патч. Далее »

Автор: Vladimir, опубликовано в: C/C++, PHP, комментариев: 10
3
Янв
2010