Joomla просто медленная, или я могу как-то ее ускорить?
Я уже давно гуглил эту проблему, но не могу найти ни одной статьи, в которой обсуждалась бы скорость Joomla, а не скорость загрузки внешних ресурсов, таких как скрипты и изображения. Моя настройка Apache + PHP работает очень хорошо - сжатие включено, и я использую локальную виртуальную машину для ее запуска. Проблема в Joomla на стороне сервера, и я не знаю, как отследить ее источник.
Страница в моей локальной настройке Joomla всегда занимает от 2 до 3 секунд для загрузки. Согласно вкладке Сеть в инструментах разработчика Chrome, браузер ожидает HTML-страницу около 2 секунд, затем загружает все внешние ресурсы примерно за 0,3 секунды. Это относится к каждой странице , даже к страницам администратора. Это приводит к очень неприятному просмотру страниц, так как за каждым щелчком по ссылке следует довольно долгое ожидание. Для иллюстрации приведем скриншот графика скорости загрузки. Синяя линия - это HTML страница:
Что такого в 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 (все интерфейсные представления)" занимают почти треть по секунде каждому. Каждая из этих точек выполняется дольше, чем я бы согласился на выполнение всего сценария. Есть какие-нибудь подсказки о том, как их уменьшить?
Я надеюсь, что этот вопрос достаточно конкретен, чтобы он не был закрыт мгновенно. Если я могу что-то сделать, чтобы сделать это более конкретным, пожалуйста, прокомментируйте.
5 answers
Joomla просто медленная (я ожидаю, что ее отметят за это), но это так. Я тестировал APC, eAccelerator и несколько других с различными версиями PHP и apache, даже пробовал использовать nginx, как в качестве модуля, так и в качестве FastCGI.
Похоже, что joomla сейчас просто раздута. лично, если вы используете его для простых целей CMS, я бы рекомендовал wordpress для начинающих или drupal для более продвинутых пользователей.
У меня были лучшие результаты, включающие различные уровни кэша в системных опциях. Если вы не используете кэш, это будет медленно.
Это может быть связано с вашим веб-хостингом... Amazon AWS - это кошмар, когда речь заходит об общих ресурсах. В небольших или даже средних экземплярах ваши ресурсы процессора являются общими, и я обычно получаю 50 % "украденных" ресурсов... %ст... это приводит к высокой загрузке сервера, и, следовательно, страницы работают крайне МЕДЛЕННО. Вы можете забыть о микро-экземплярах... загрузка вашего сервера постоянно составляет 90% +
Мы планируем перенести веб-хостинги в конце года. Будем надеяться, что мы сможем решить эту проблему.
При запуске joomla 2.5 на локальном хосте (Windows) я испытывал время до 8 секунд в задачах администратора. Наконец, мне пришлось отключить некоторые расширения php для повышения производительности. например. php_pdo_oci.dll, php_pdo_mysql.dll и т.д Старайтесь работать только с необходимым.
Да, Joomla требует больше времени для подготовки результирующего html-кода по сравнению с wordpress. Почему? потому что это предоставляет вам мощную основу для того, чтобы сделать ваш сайт гораздо большим, чем просто блог.