Это тяжелые плагины или множество плагинов, которые делают сайт медленным?

Я часто слышал, что наличие большого количества плагинов замедлит работу сайта WordPress. Это, конечно, имеет смысл, поскольку чем больше выполняется код, тем дольше это займет.

Мне интересно, в основном ли медлительность:

  • результат большого количества плагинов? (потому что WP должен выполнить некоторую обработку, чтобы найти и загрузить каждый плагин)

  • результат наличия нескольких медленных /тяжелых плагинов?

Практически, когда я пишу свой собственный, следует ли комбинировать функциональность с меньшим количеством файлов, чтобы получить скорость? Или это нормально иметь 10-20 плагинов, каждый из которых выполняет быструю задачу?

6 голосов | спросил allclaws 19 AM00000090000005031 2010, 09:35:50

7 ответов


8

Общие положения

Эмпирическое правило « множество плагинов замедляет работу сайта » - очень тупой инструмент и увековечивается теми, кто не понимает, как работают плагины, поэтому они выбирают что-то простое для демонирования.

Да плагины могут замедлить ваш сайт, но это не связано с количеством, которое оно имеет отношение к качеству и тем, что они пытаются выполнить. Я мог бы написать один плагин, который привел бы сайт к коленям (если бы это было повод для меня), и это было бы хуже, чем 50 других хорошо написанных плагинов. Конечно, люди пишут плагины все время, что принесет сайт на колени, потому что они не знают ничего лучше.

Я предполагаю, что единственная истина для « большого количества плагинов замедляет работу сайта » заключается в том, что, когда у вас много плагинов, более вероятно, что вы поймаете плохой.

Особенности

Итак, давайте поговорим об особенностях. Плагины используют « hooks », которые являются битами PHP-кода, которые запускают определенные точки вдоль пути выполнения, и могут либо что-то делать, либо фильтровать значение, либо и то, и другое. WordPress начинает называть крючки ранее в своих усилиях по созданию веб-страницы и генерированию HTML для отправки в браузер и продолжает вызывать перехватчики почти до тех пор, пока не закончит работу для данной страницы.

В зависимости от того, какие перехватчики использует плагин, он может быть вызван только на определенных страницах, в « background » или даже почти никогда. Некоторые перехватчики работают только в консоли администратора. Некоторые перехватчики работают только на определенных страницах консоли администратора. И некоторые перехватчики вызываются внутренней системой psuedo-cron . OTOH, некоторые плагины могут загружать дополнительные файлы CSS или JS, и каждый из этих файлов замедляет производительность из-за Web Правило эффективности №1 .

Если вы хотите понять, какие вызовы вызываются на каждой странице, рассмотрите возможность использования Instrument Hooks для WordPress "Я написал для вопроса" Где я могу найти список клипов WordPress? « Вот скриншот, плагин показывает в нижнем колонтитуле при использовании:

Снимок экрана с инструментальными крючками для плагина WordPress в действии

Но просто знание крючков не поможет вам точно знать, есть ли проблема с плагином. Вы можете вызвать плагин 100 раз, и вызов его может быть незначительным по сравнению с другим вызовом на крючок, который добавляет предложение WHERE к SQL-запросу, которое может привести к сбою сайта с более чем несколькимистами сообщений. Или он может выполнить HTTP-вызов на другой сервер. Или он может очистить правила перезаписи при каждой загрузке страницы. Список грехов продолжается.

Единственный реальный способ узнать наверняка, что он проверяет крючки плагина, просматривая исходный код или лучше запуская его через отладчик, например PhpStorm + XDEBUG .

Ваши собственные плагины

Не беспокойтесь о том, как организован код для целей производительности ; беспокоиться о том, что делает ваш код. Оптимизация часто выполняемого SQL-запроса , используя Transient API (см .: Презентация о Transient API ) будет гораздо лучше для производительности , чем слияние кода из 10 плагинов в один.

С другой стороны, подумайте об организации своего кода по другим причинам. Я думаю, длинный список плагинов может создать психологический диском для многих пользователей; они видят такой экран, перегружаютсяи просто хотите упростить вещи:

Длинные списки плагинов

С другой стороны, иногда пользователи могут быть перегружены, потому что один плагин делает слишком много. Например, я чувствовал это с помощью плагина GD Star Rating . Попробовав его по проекту (и, что еще хуже, пытаясь подключить его, чтобы заставить его делать то, что мне нужно), я решил выбросить его на ухо.

Итак, некоторые люди (например, я) часто предпочитают множество небольших плагинов, каждый из которых делает что-то одно и делает это хорошо (было бы неплохо, если бы WordPress поддерживал функцию группировки вроде как iPhone iOS 4 позволяет группировать приложения в папках .)

Длинный список GD Star Rating Options

В любом случае, надеюсь, что это поможет.

ответил MikeSchinkel 19 AM000000100000000831 2010, 10:48:08
2

Naturally Plugins - это только одна часть истории производительности, поэтому вы не можете измерить ее по количеству файлов в конце. Существует больше, и вы не можете заранее сказать, что работает, поэтому что-то, что может быть хорошо на вашем компьютере, не на других.

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

Если пользователь жалуется на эффективность своего блога, вы обычно можете предположить, что они просто могут купить более крупный сервер, и проблемы с производительностью решены.

(Pre-Mature) Оптимизация - это корень всего зла. Просто не думайте о производительности при написании плагинов. Возьмите его светлым и ярким способом: WordPress не рассчитан на производительность, в конце концов, не делайте ошибки и старайтесь писать для него плагины исполнения;)

WordPress разработан с Big Ball of Mud- (anti-) design-pattern . Плагиновая система - это система, которая очень хорошо работает с ней. Просто не думайте, что вы можете так оптимизировать, как автор плагина. Вы не можете. Не бойся:)

ответил hakre 19 AM000000100000002831 2010, 10:15:28
0

Вы можете использовать WordPress сотнями плагинов, когда дизайн плагинов прекрасен - большинство плагинов имеют плохой код, и это проблема производительности WordPress.

ответил bueltge 19 AM000000100000001731 2010, 10:45:17
0

речь идет о правильных плагинах. Например, проверьте, записывают ли ваши плагины свои собственные таблицы в базу данных, это, как правило, немного замедляет работу. все, что загружает много jquery или javascript, как правило, замедляет его. Большое количество подключаемых модулей не всегда означает снижение производительности. Убедитесь, что вы используете подключаемый модуль для кеширования, который также поможет.

Я предполагаю, что вы спрашиваете об этом, потому что вы испытываете замедление? Спросите своего хоста, есть ли что-нибудь, что вы можете сделать, чтобы ускорить его, и убедитесь, что ваша конфигурация php установлена ​​правильно.

ответил rfair404 20 AM000000120000002531 2010, 00:25:25
0

Вы смотрите на 2 вещи, которые замедлят ваш сайт:   1, обработка из файлов на сервер (ы), ваши php и   2, способ чтения считывает код.

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

rFair404 упомянули программы кэширования, которые помогут с запросами сервера, а некоторые сжимают html-код, и это напоминает мне, мне нужно сжать некоторые страницы css.

ответил 26 AM00000010000003831 2010, 01:52:38
0

Я обычно не устанавливаю слишком много плагинов для WordPress, вместо этого я пытаюсь использовать рамки темы, которые выполняют основную работу. Это правда, что каждый плагин будет содержать потребление ресурсов.

Каждый плагин будет делать что-то, им нужно инициализировать, поэтому они будут запускать некоторый код, когда запрашивается страница для вашего сайта, не говоря уже о том, что так много ссылок на панели администратора WordPress, что затрудняет загрузку.

Возможно, вы не заметите его на общем хостинге с просмотрами страниц 2-3 тыс. в день, но если у вас есть сайт с активными пользователями 3k, каждый из которых каждый день запрашивает 10 страниц, это может стать проблемой.

ответил 20 AM00000010000003031 2010, 01:55:30
0

Я бы сказал, что ответ как .


Дополнительные плагины = более медленная

Каждый плагин, который вы включаете, который добавляет таблицу стилей и /или javascript на страницу, резко замедляет ваш сайт.

Даже лучшие написанные плагины будут заглушать ваш сайт, если для каждого из них требуется таблица стилей и javascript, чтобы сделать что-то на передней части вашего веб-сайта.

Слияние файлов

Если вы запустите сайт WordPress, вы обязаны сделать это для себя, чтобы узнать, как:

  • Правильно объединить файлы javascript вместе
  • Правильно объединить файлы стилей вместе
  • Переместить вызовы javascript из заголовка в нижний колонтитул

Если вы запустите сайт WordPress, и вы не можете делать вышеуказанные вещи, тогда вы не должны запускать сайт wordpress ... или, по крайней мере, вы не должны жаловаться, когда ваш сайт замедляется, когда вы загружаете больше плагинов.

Кроме того, любой, кто работает на сайте wordpress, должен знать, как:

  • Минимизировать файлы CSS и javascript
  • Включить сжатие сервера
  • Удостоверьтесь, что заголовки заканчиваются с помощью скриптов и таблиц стилей.

Плохо написанные плагины = более медленная

Основные способы, по которым автор плагинов действительно замедляет работу вашего сайта, следующие:

  1. Загрузка нескольких сценариев или таблиц стилей для одной страницы - см. выше
  2. Использование базы данных ненадлежащим образом - плохо написанные запросы, модификации запросов и т. д. могут оказать серьезное влияние на веб-сайт. Невозможность кэширования результатов, где это возможно, также может замедлить работу. Большинство людей сосать в разработке и администрировании базы данных. Когда такие люди используют базы данных, возникают проблемы.
  3. Использование wp cron неправильно - постоянные задания cron для каждого пользовательского запроса приведут сервер на колени.

Недостаточно написания действительно плохого кода (полубесконечные петли, тонны регулярных выражений, если это не необходимо, и т. д.), большинство вещей не будут иметь большого эффекта, если учесть, насколько большой Wordpress уже есть. Добавление 1% дополнительного времени обработки не так много.


Задачи, которые врожденно медленны

Есть некоторые вещи, которые просто медленно, независимо от того, насколько хорошо написаны:

  1. Использование сторонних служб - каждый раз, когда ваш ответ на пользователя зависит от ответа от стороннего участника, ваш сайт будет становиться намного медленнее.

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

ответил Privateer 24 22015vEurope/Moscow11bEurope/MoscowTue, 24 Nov 2015 01:28:18 +0300 2015, 01:28:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132