ГлавнаяWordpressОптимизация → Оптимизация производительности WordPress за счет постоянных ссылок (практика)

Оптимизация производительности WordPress за счет постоянных ссылок (практика)

Комментариев: 18Оптимизация производительности WordPress за счет постоянных ссылок (практика)
  • Насколько быстрее сайт стал работать? По-моему прирост в производительности совсем мал. Генерация ссылки на лету занимает очень мало времени.

    Можете дать технические замеры "до и после"?

    Причем тут есть наверное один тонкий момент, это переадресация. Если человек стал использовать ЧПУ на сайте, то по старым ссылкам вида "?p=id" будет происходить редирект и как бы все хорошо. Если же перебить напрямую, то теряется гибкость определенная.

    С одной стороны это логично, но что-то мне говорит, что это повлияет только на время генерации страницы и очень незначительно, что овчинка выделки не будет стоить, но все равно интересно взглянуть на технические замеры smile

    ОТВЕТИТЬ ↓
    • если же перебить напрямую

      Редирект разве от этого зависит? То что я предлагаю, это всего лишь не использовать get_permalink(), который выводит ссылку на самой странице. А по какой ссылке посетитель пришел на сайт и как движок редиректит при этом - это другое. Хотя, может я не понял что имелось ввиду?

      что овчинка выделки не будет стоить

      В общем так и есть, если в ЧПУ тега %category% нет. А с ним чувствуется разница, причем, чем больше ссылок на странице выводиться и чем глубже структура категорий, тем значительнее.
      В любом случае, минусов в этом подходе я не вижу абсолютно, единственно, если человек не понимает как это работает, тогда могут возникнуть проблемы...

      Конкретных чисел к сожалению нет sad , потерялись, не могу найти, помню записывал, давненько дело было.

      Вот, нашел, но не совсем то - это с выключенным кэшем, на странице около 120-140 вызовов ссылок, ЧПУ /%category%/%year%-%month%/%post_name%, версия ВП 2.9.1, на локалке:
      до: SQL: 1280 за 8.256 сек., 15.39 MB
      после: SQL: 493 за 3.517 сек., 15.24 MB

      С включенным кэшем разница конечно не такая, но тоже весьма заметна (точнее не помню). При этом, если кэш пишется в какие-то временные файлы, то нагрузка идет на файловую систему, которая на времени загрузки страницы мало отражается, а выражается в чем-то другом, насколько я понимаю.

      ОТВЕТИТЬ ↓
      • Ну на SQL смотреть тут явно не нужно. ВП не работает с выключенным кэшем, поэтому ориентироваться в данном случае на этот показатель не стоит. Если выключить кэш, то думаю сайт долго не протянет и рассматривать это как показать не стоит в данном случае.

        В штатном режиме будет одинаковый показатель.

        ОТВЕТИТЬ ↓
  • Встроенный кэш по умолчанию включен, думаю, что не стоит на это совсем смотреть.

    А примерно на вскидку разнуца будет примерно такая:
    до: SQL: 25 за 3.617 сек., 15.27 MB
    после: SQL: 25 за 3.517 сек., 15.24 MB

    Из-за такого прироста что-то делать вручную - просто лень.

    ОТВЕТИТЬ ↓
    • Как-нить протестирую, выложу сюда результаты.

      Ваше примерно, навскидку кажется неправильное, я когда без кэша проверял с кэшем тоже проверял, просто не записал, и там была разница побольше. Ну, увидим.

      А насчет возиться эт, пожалуй, правда... Такой подход я предлагаю, если делается новый шаблон или пишется очередная функция вывода или еще что-нить где участвует генерация ссылок (а она участвует практически везде). Если нет разницы, зачем платить больше? *crazy*

      ОТВЕТИТЬ ↓
    • Спасибо за проявленный интерес к статье *thank_you*

      Протестировал на генерацию 10 ссылок уходит 0,12 секунды.

      Дополнил пост, подробнее там.

      ОТВЕТИТЬ ↓
      • Это опять все зависит от настроек сервера.

        У меня на локальном хосте домашнего ПК страница целиком генерится за 0,2 сек. А на локальном хосте ноутбука эта же страница вся генерится за 0,09 сек

        ОТВЕТИТЬ ↓
        • Ну да, но сравнительная нагрузка то остается. Само сабой разумеется, чем мощнее сервер и лучше настроен, тем меньше необходимости что-то оптимизировать...

          ОТВЕТИТЬ ↓
  • Назрела необходимость исследования производительности WP для выявления "слабых мест".
    Kama, не подскажешь, как проводил стресс-тесты?
    Можно ли на локалке эмулировать "посетителей" с различными параметрами?

    ОТВЕТИТЬ ↓
    • Такое эмулирование я не проводил ни разу. Помочь не могу в этом вопросе.

      ОТВЕТИТЬ ↓
  • WordPress не рекомендует использование /%category%/%postname%/ и в первой части статьи вы доступно объяснили, почему. Но там же вы пишете, что при использовании кэша количество запросов к БД составляет 0.
    Я небольшой знаток WordPress, поэтому не совсем понял, почему кэширование не является оптимальным (а из ваших слов я понял, что кэширование только частично решает проблему).
    И чисто технический вопрос: в каком именно шаблоне находится то, что нужно заменять? Поиском по файлам я нашел 3-4 десятка файлов, в которых находятся выражения, подлежащие замене.

    ОТВЕТИТЬ ↓
    • Замену нужно производить в файлах темы.

      Вообще, если не до конца понятно как работает этот метод, то, наверное, лучше ничего не менять, потом встречные проблемы могут возникнуть.

      Если можно, то лучше просто не используйте /%category%/ в ссылке.

      ОТВЕТИТЬ ↓
  • По оптимизации - Kama, у вас на блоге jquery.lightbox.min.js.gzip - грузится 3 раза...

    Опять же - много запросов идут от смайлов.

    и no_avatar.gif грузится столько раз сколько пользователей без авторизации с граватара (сейчас 3)(причем 1 раз только сервер отдал её с 304 ответом, а 2 картинки грузятся последовательно и без кэша).еще один из no_avatar.gif - грузился 3.5 секунды...

    Это относится к оптимизации, но не к этой статье, так что смело удаляйте мое сообщение. Я не обижусь smile

    ОТВЕТИТЬ ↓
    • jquery.lightbox.min.js.gzip - грузится 3 раза

      Это вы как смотрели, где? Не вижу в упор. Да и быть такого не может, чтобы один и тоже скрипт грузился 3 раза! Максимум, браузер заголовками обменивается с сервером на предмет, надо ли еще раз загружать.

      no_avatar.gif - не может грузиться несколько раз. Там только редиректит с gavatar на файл no_avatar.gif, на редирект время уходит, а сама картинка 1 раз загружается, но это уже издержки использования gavatar.

      ОТВЕТИТЬ ↓
  • я фаербагом смотрю. в фаерфоксе. вкладка - сеть
    http://s008.radikal.ru/i304/1103/bf/604e1f8f55eb.jpg
    http://s43.radikal.ru/i101/1103/85/44dba2fc488d.jpg
    Нет. именно отдает несколько раз.

    ОТВЕТИТЬ ↓
    • Спасибо за скрины и проявленный интерес! Но я опять не соглашусь, все происходит так как я и сказал.

      Вы с цветами разберитесь - там не загрузка, а ожидание показано (редиректы, обмен заголовками, блокировка). А размер указан для всех элементов без исключения, не важно загружался он или нет.

      Спрятанные смайлики кстати не грузятся, блокируются, там и это показано.

      ОТВЕТИТЬ ↓
      • Значит все верно - я неправильно трактовал отчёт. *sorry*

        ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?