Ради любопытства ковырял исходники битрикса и возник интересный вопрос по eventmanager.
На каждый хит вызываются обработчики событий, например, OnEpilog, OnEpilogAfter и еще несколько, какой-то минимальный набор событий.
И что получается? При каждом событии скрипт обращается к EventManager, тот делает SELECT к базе, по записям с определенным типом и модулем событий? И так по 10 раз на хит?
Или все таки это дело кешируется?
Ради эксперимента пробовал кешировать переменные в функции findEventHandlers, но обработка нового объекта CPHPCache занимает еще больше времени.
И еще, в том же файле(\bitrix\modules\main\lib\eventmanager.php) нашел интересные строки:
Это какая-то новая работа с кешем в D7? Если так, то есть ли это в документации? У меня найти не получилось...
На каждый хит вызываются обработчики событий, например, OnEpilog, OnEpilogAfter и еще несколько, какой-то минимальный набор событий.
И что получается? При каждом событии скрипт обращается к EventManager, тот делает SELECT к базе, по записям с определенным типом и модулем событий? И так по 10 раз на хит?
Или все таки это дело кешируется?
Ради эксперимента пробовал кешировать переменные в функции findEventHandlers, но обработка нового объекта CPHPCache занимает еще больше времени.
И еще, в том же файле(\bitrix\modules\main\lib\eventmanager.php) нашел интересные строки:
| Код |
|---|
$cache = Application::getInstance()->getManagedCache(); if ($cache->read(3600, self::$cacheKey)) |
postoev.ru/blog/