Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 2871 Просмотров
*

Dram

  • Захожу иногда
  • 211
  • 1 / 0
Заметил такой нюанс - чем больше комментариев на странице - тем дольше выполняется быстрая модерация из почты.

Запрос на опубликование комментария на некоторые страницы моего сайта длится более 10 секунд! Если публикую где то в дороге через телефон, то опера мини просто не понимает такой долгий редирект и прерывает соединение...  

Как правило это самые обсуждаемые статьи, где комментариев более 500.

Недавно очистил такую страницу от части комментариев - было 1200, стало 500 - все равно запрос идет очень долго. На страницы с малым количеством комментариев запрос проходит за 1-2 секунды.

Публикую коменты из почты gmail   по 300 - 500 в сутки. Так что статистика более чем проверенная.  Версия компонента последняя. Данная проблема наблюдается на разных сайтах.
« Последнее редактирование: 22.10.2012, 12:04:46 от smart »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
А у вас включены уведомления для пользователей? Скорее всего это связано с тем, что вы из быстрой модерации публикуете комментарии и время уходит на рассылку уведомлений. Решение этой проблемы запланировано на следующую версию JComments (будет реализована очередь отправки уведомлений и это снизит нагрузку и уменьшит время ответа). Но на удаление комментариев это никак не может повлиять (по крайней мере я не вижу никаких оснований для увеличения задержки при большем количестве комментариев к материалу). Я на тестовых сайтах JComments в сутки модерирую порядка 50-100 комментариев, задержек не замечал, но попробую помониторить более внимательно.
*

Dram

  • Захожу иногда
  • 211
  • 1 / 0
Да - уведомление включено. Теперь понятно в чем проблема.  Удаление происходит быстро.
Заметил такой нюанс - в темах где сообщений много - я уже не опубликовываю из почты, а сразу захожу на страницу - жму редактировать/сохранить.   В этом случае комент становится опубликованым очень быстро.

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

Заранее благодарен.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Может быть можно какой-то хак применить? А то у меня уже Ваш компонент настолько модернизирован под свои нужды, что обновления затрет все правки.
Я не думаю, что здесь можно обойтись хаком.
*

Dram

  • Захожу иногда
  • 211
  • 1 / 0
Готов оплатить правку компонента. Если у Вас есть время - напишите, пожалуйста в личку
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Зачем оплачивать то, что и так планируется к реализации? Подождите, пока этот функционал появится и дальше накатите изменения, например, с помощью того же WinMerge.
*

Dram

  • Захожу иногда
  • 211
  • 1 / 0
Сам я это не сделаю - в любом случая придется платить фрилансеру чтобы добавил правку - так лучше уж заплатить автору...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну вот как только сделаю - стучитесь, помогу накатить это изменение на вашу версию.
*

Dram

  • Захожу иногда
  • 211
  • 1 / 0
*

dimetrius

  • Захожу иногда
  • 160
  • 8 / 1
Тоже очень жду! В одном материале около 13000 комментариев, в день добавляется 10-50 новых, модерация занимает очень много времени именно в этом материале. В остальных материалах всё происходит очень быстро.

Об очереди отправки просил ещё до выхода этой версии, но... надеюсь что в следующей действительно будет реализовано.
*

Dram

  • Захожу иногда
  • 211
  • 1 / 0
smart писал что черновой вариант решения проблемы уже есть - но потом что-то пропал...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Да, решение уже есть. Пропал по одной причине - не было времени, плюс были другие задачи (реализация плагина простановки рейтинга при добавлении комментария, оптимизация кода, доработка плагина аватаров). Плюс, у Dram стоит не оригинальный, а модифицированный компонент, и чтобы с ним разобраться нужно дополнительное время.  Как только появится окно - сразу выйду на связь. На текущий момент компонент с очередью поставлен на тестирование на demo.joomlatune.com, demo-j17.joomlatune.com и city-adm.lviv.ua. Вторые сутки полет нормальный.

@dimetrius: если у вас установлен компонент версии 2.3.0 и вы готовы принять участие в тестировании новой версии - свяжитесь со мной в ЛС, я дам вам тестовый билд.

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Общее количество комментариев, оставленных конкретным пользователем

Автор Vlad1

Ответов: 9
Просмотров: 3415
Последний ответ 28.09.2022, 23:21:05
от Helios
Модуль для вывода последних комментариев из JComments

Автор draff

Ответов: 7
Просмотров: 3556
Последний ответ 16.09.2021, 21:35:48
от draff
Вывести один и тот же список комментариев плагина jcomments на разных материалах

Автор max_max

Ответов: 17
Просмотров: 2185
Последний ответ 16.10.2020, 20:48:50
от gartes
Не отображается оценка комментариев

Автор Vitek23

Ответов: 6
Просмотров: 3557
Последний ответ 27.04.2020, 14:22:16
от Nobillis
JComments количество комментариев

Автор rrrccc

Ответов: 0
Просмотров: 1114
Последний ответ 13.02.2020, 11:17:22
от rrrccc