Увижу ли я снижение производительности, если буду использовать собственные вызовы API, такие как get the title() вместо $post->заголовок сообщения?


Допустим, я уже получил объект $post с помощью некоторого более раннего процесса циклического перебора массива идентификаторов и использования get_post() для каждого из них, сохраняя полученный объект в некотором массиве.

Позже я хочу просмотреть этот массив и что-то сделать с каждым сообщением. У меня уже есть объект $my_post, так что я мог бы echo $my_post->post_title, или я мог бы пофантазировать и echo apply_filters('the_title', $my_post->post_title, $my_post->ID), или я мог бы просто использовать родной get_the_title($my_post->ID).

Вот где возникает мой вопрос о производительности. Как надежен ли собственный кэш (я не говорю о каком-то сумасшедшем плагине, просто встроенный wp_cache_get($post_id, 'posts') и т. Д.)?

Я думаю, что я спрашиваю: какова вероятность того, что get_the_title() вернется в БД и повторно захватит сообщение, в отличие от использования кэша, и будет ли мне лучше с точки зрения производительности просто использовать данные объекта, которые у меня уже есть? Очевидно, что вы получаете больше сахара, если используете встроенный материал. Но рискует ли он вернуться в БД?

Author: Tom Auger, 2011-08-25

1 answers

Теги шаблонов полагаются на глобальные $post (если вы явно не предоставляете что-то другое тем, кто его поддерживает. Так что либо:

  • Они получают что-то из этой переменной (нет причин искать это в базе данных)

  • Или они этого не делают (тогда они терпят неудачу, потому что понятия не имеют, чего вы хотите)

В большинстве нормальных обстоятельств нет причин беспокоиться о влиянии тегов шаблонов. Это вступает в игру только в том случае, если вы начнете иметь дело с сумасшедшей суммой сообщений и/или применять чрезмерно сложные фильтры.

Обновление после обсуждения в комментариях

get_post() всегда пытается вызвать кэш перед вызовом базы данных. Кэш очищается функциями, которые явно изменяют записи (см. clean_post_cache() ) или истекает естественным путем.

 4
Author: Rarst, 2011-08-26 15:51:58