Я пытаюсь понять, почему мои страницы загружаются так долго. У меня есть страница с 30 звонками get_template_directory_uri()
и реализация этой функции делает вызовы в базу данных, но значение, возвращаемое функцией, одинаково для всей моей генерации страницы. Поэтому я, вероятно, должен сделать что-то вроде
$tduri = get_template_directory_uri();
и использовать $tduri
по мере необходимости, по крайней мере, в качестве хорошей практики, но является ли это абсолютно необходимым или будет ли ценность get_template_directory_uri()
были кэшированы в любом случае?
PHP не кэширует возвращаемые значения функций самостоятельно. В вашем случае функция выполняет вызов во внешнюю базу данных, так как же PHP мог узнать, был ли результат одинаковым или разным при каждом вызове функции?
Также учтите, что любой вызов внешней системы, скорее всего, будет медленнее, чем сохранение переменной в скрипте PHP.
Так что, да, безусловно, кэшируйте возвращаемое значение где-нибудь подходящим и всегда проверяйте, дает ли оно заметное улучшение, иногда результаты могут быть удивительными. Есть много хороших способов профилировать PHP, микропоры очень быстро для специального тестирования, не требуя дополнительной настройки. Ищите «Профилирование PHP», чтобы получить более мощные инструменты.
Других решений пока нет …