Отладка обработчиков событий битрикс
Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.
Для поиска этого медленного кода понадобится всего пару методов:
$eventManager = \Bitrix\Main\EventManager::getInstance(); foreach ($eventManager->findEventHandlers('main', 'OnEpilog') as $i => $arEvent) { // список обработчиков OnEpilog if ($i >= 5) { // отсекаем часть $eventManager->removeEventHandler('main', 'OnEpilog', $i); // удаляем обработчики } }
Поясню. С помощью findEventHandlers находим все обработчики события OnEpilog, далее с помощью removeEventHandler убираем часть из них и смотрим как изменилось время генерации страницы. Изменяя условие "отсечения" вы найдёте проблемный обработчик. Также в эпилоге есть еще одно "любимое" многими событие OnEndBufferContent, его тоже стоит проверить.
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.