Отладка обработчиков событий битрикс
![Отладка обработчиков событий битрикс](/upload/iblock/524/d1oih5j89u08r0c9o25ra0qae570bxz2/otladka-obrabotchikov-sobytiy-bitriks-d.jpg)
Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в 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, его тоже стоит проверить.
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.