Joomla просто медленная, или я могу как-то ее ускорить?


Я уже давно гуглил эту проблему, но не могу найти ни одной статьи, в которой обсуждалась бы скорость Joomla, а не скорость загрузки внешних ресурсов, таких как скрипты и изображения. Моя настройка Apache + PHP работает очень хорошо - сжатие включено, и я использую локальную виртуальную машину для ее запуска. Проблема в Joomla на стороне сервера, и я не знаю, как отследить ее источник.

Страница в моей локальной настройке Joomla всегда занимает от 2 до 3 секунд для загрузки. Согласно вкладке Сеть в инструментах разработчика Chrome, браузер ожидает HTML-страницу около 2 секунд, затем загружает все внешние ресурсы примерно за 0,3 секунды. Это относится к каждой странице , даже к страницам администратора. Это приводит к очень неприятному просмотру страниц, так как за каждым щелчком по ссылке следует довольно долгое ожидание. Для иллюстрации приведем скриншот графика скорости загрузки. Синяя линия - это HTML страница:

Illustration

Что такого в Joomla, что может занять 2 секунды обработки для каждого запроса ? Joomla просто такая медленная, или что-то не так с моей настройкой? Если да, то как мне это отладить?


Что я пробовал

  • Я создал PHP-страницу, полностью отделенную от настройки Joomla, и заполнил ее <?php phpinfo(); ?>, просто чтобы подтвердить, что задержка 2s не влияет на все PHP-скрипты. Это не так.
  • Я написал и выполнил небольшой PHP скрипт, который подключается к локальному серверу MySQL, как по "127.0.0.1", так и по "localhost", и распечатывает все таблицы в базе данных Joomla. Скрипт запускается всего за долю секунды, поэтому ошибка не связана с проблемами DNS при подключении к базе данных.

Информация профиля Joomla для загрузки главной страницы:

Application 0.000 seconds (+0.000); 0.81 MB (+0.807) - afterLoad
Application 0.217 seconds (+0.217); 2.29 MB (+1.479) - afterInitialise
Application 0.296 seconds (+0.079); 4.34 MB (+2.055) - afterRoute
Application 0.640 seconds (+0.345); 5.59 MB (+1.247) - afterDispatch
Application 0.705 seconds (+0.065); 5.85 MB (+0.266) - beforeRenderModule mod_menu (Main Menu)
Application 0.774 seconds (+0.069); 5.91 MB (+0.053) - afterRenderModule mod_menu (Main Menu)
Application 0.774 seconds (+0.000); 5.90 MB (-0.009) - beforeRenderModule mod_menu (All Front End Views)
Application 1.004 seconds (+0.229); 6.05 MB (+0.147) - afterRenderModule mod_menu (All Front End Views)
Application 1.004 seconds (+0.000); 6.03 MB (-0.016) - beforeRenderModule mod_menu (User Menu)
Application 1.035 seconds (+0.032); 6.05 MB (+0.021) - afterRenderModule mod_menu (User Menu)
Application 1.036 seconds (+0.000); 6.04 MB (-0.010) - beforeRenderModule mod_menu (A Deep Menu)
Application 1.058 seconds (+0.023); 6.06 MB (+0.017) - afterRenderModule mod_menu (A Deep Menu)
Application 1.059 seconds (+0.000); 6.05 MB (-0.010) - beforeRenderModule mod_menu (This Site)
Application 1.092 seconds (+0.034); 6.06 MB (+0.014) - afterRenderModule mod_menu (This Site)
Application 1.092 seconds (+0.000); 6.05 MB (-0.013) - beforeRenderModule mod_login (Login Form)
Application 1.116 seconds (+0.024); 6.07 MB (+0.023) - afterRenderModule mod_login (Login Form)
Application 1.116 seconds (+0.000); 6.07 MB (-0.002) - beforeRenderModule mod_breadcrumbs (Breadcrumbs)
Application 1.143 seconds (+0.027); 6.09 MB (+0.021) - afterRenderModule mod_breadcrumbs (Breadcrumbs)
Application 1.143 seconds (+0.000); 6.09 MB (-0.003) - beforeRenderModule mod_menu (Top)
Application 1.179 seconds (+0.035); 6.12 MB (+0.028) - afterRenderModule mod_menu (Top)
Application 1.179 seconds (+0.000); 6.10 MB (-0.012) - beforeRenderModule mod_search (Search)
Application 1.207 seconds (+0.028); 6.13 MB (+0.028) - afterRenderModule mod_search (Search)
Application 1.236 seconds (+0.029); 6.15 MB (+0.014) - afterRender

Обратите внимание, что шаги "Afterinitialize", "afterdispatch" и "afterrendermodule mod_menu (все интерфейсные представления)" занимают почти треть по секунде каждому. Каждая из этих точек выполняется дольше, чем я бы согласился на выполнение всего сценария. Есть какие-нибудь подсказки о том, как их уменьшить?

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

Author: Hubro, 2013-02-28

5 answers

Joomla просто медленная (я ожидаю, что ее отметят за это), но это так. Я тестировал APC, eAccelerator и несколько других с различными версиями PHP и apache, даже пробовал использовать nginx, как в качестве модуля, так и в качестве FastCGI.

Похоже, что joomla сейчас просто раздута. лично, если вы используете его для простых целей CMS, я бы рекомендовал wordpress для начинающих или drupal для более продвинутых пользователей.

 5
Author: bizzehdee, 2013-02-27 23:06:42

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

 1
Author: Mario, 2013-02-27 23:11:18

Это может быть связано с вашим веб-хостингом... Amazon AWS - это кошмар, когда речь заходит об общих ресурсах. В небольших или даже средних экземплярах ваши ресурсы процессора являются общими, и я обычно получаю 50 % "украденных" ресурсов... %ст... это приводит к высокой загрузке сервера, и, следовательно, страницы работают крайне МЕДЛЕННО. Вы можете забыть о микро-экземплярах... загрузка вашего сервера постоянно составляет 90% +

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

 0
Author: Nucleus888, 2013-10-13 03:17:45

При запуске joomla 2.5 на локальном хосте (Windows) я испытывал время до 8 секунд в задачах администратора. Наконец, мне пришлось отключить некоторые расширения php для повышения производительности. например. php_pdo_oci.dll, php_pdo_mysql.dll и т.д Старайтесь работать только с необходимым.

 0
Author: Wed Bev, 2013-11-07 08:10:27

Да, Joomla требует больше времени для подготовки результирующего html-кода по сравнению с wordpress. Почему? потому что это предоставляет вам мощную основу для того, чтобы сделать ваш сайт гораздо большим, чем просто блог.

 0
Author: I.Adam, 2014-10-10 23:08:41