Отладка обработчиков событий битрикс

1k
Алексей,
Отладка обработчиков событий битрикс
Отладка обработчиков событий битрикс

Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.

Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в 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, его тоже стоит проверить.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 31 октября 2022 | Обновлено 11 января 2023
Поделиться
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.