Есть ли способ и/или причина выгружать узел после загрузки узла?
У меня есть пользовательский модуль, который загружает один конкретный узел, чтобы получить значение его поля, а затем использует это поле для выполнения ряда вычислений. Я видел несколько комментариев , подобных этому, в которых node_load является ресурсным боровом...
Мой вопрос заключается в том, есть ли существенное преимущество в сбросе объекта узла после того, как я получил значение своего поля, и если да, то как лучше всего его сбросить? Я некоторое время гуглил, но могу найти ссылки только на удаление узлов, не выводя объект из строя. Спасибо!
1 answers
Рекомендуется использовать node_load()
, а не создавать собственные запросы.
Если вы беспокоитесь о влиянии на память, вы можете выгрузить ее, сбросив ее:
unset($node);
Это уничтожит указанную переменную/объект, однако вам не нужно этого делать, так как PHP должен обрабатывать сборку мусора внутри.
Во-вторых, узел будет загружен только в вашей локальной области, поэтому, как только PHP выйдет из вашей функции, он должен быть автоматически удален из памяти в какой-то момент. точка.
Если вы беспокоитесь о влиянии на память, вы можете:
- уменьшите количество модулей, которые подключаются к объектам узла,
- запустите профилировщик PHP (например, XDebug), чтобы проверить, какая память используется больше всего,
- включите Devel и его проверку производительности, он покажет вам, сколько памяти используется на отдельной странице,
-
Реализовать кэширование памяти (вместо использования уровня базы данных), например redis или memcached