Новости 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 Гость просматривают эту тему.
  • 6 Ответов
  • 802 Просмотров
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Joomla! 3.9.25
В Media -> Options прописаны
1) в "Legal Image Extensions (File Types)" -- svg
2) в "Legal Extensions (File Types)" -- svg
3) в "Legal MIME Types" -- image/svg+xml
Итог: во фронте в статьях svg показыаются, а в баннерах -- нет.
Вопрос: где ещё накуролесить, чтобы можно было использоавть svg в баннерах?
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Re: Как использовать в баннере svg?
« Ответ #1 : 22.03.2021, 17:45:07 »
Частично отвечу на свой вопрос.
Безобразия происходят от файла components\com_banners\helpers\banner.php: там  строке 30 написано
Код
return preg_match('#\.(?:bmp|gif|jpe?g|png)$#i', $url);
Стоит добавить в строку svg
Код
return preg_match('#\.(?:bmp|gif|jpe?g|png|svg)$#i', $url);
и всё работает.
Возникает естественный вопрос: как сделать то же самое, но не трогая системные файлы? В шаблоне переопределения для компонента баннеров не предусмотрено.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Как использовать в баннере svg?
« Ответ #2 : 22.03.2021, 20:34:48 »
если имя файла можно руками править, то пиши везде bmp расширение, а на выводе заменяй на svg, благо в реале никто в здравом уме bmp не повесит на баннер )
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Re: Как использовать в баннере svg?
« Ответ #3 : 22.03.2021, 21:25:27 »
Можно, конечно, и так. Для этого нужен плагин (скорее всего). При этом ещё и расширение файлов менять надо -- что совсем нехорошо.
Кто-нибудь знает: почему у команды разработчиков такая нелюбовь к svg? Или это просто наследие старых версий Joomla! -- если судить по коду хелпера и независимости установок картинок для статей и для баннеров?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Как использовать в баннере svg?
« Ответ #4 : 22.03.2021, 22:40:38 »
дык старая же система. они в то время боялись svg, как потенциально таящего в себе опасности.
перебдели, короче.
делай подмену расширения в модуле вывода, чтобы по всей странице не шерстить.
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Re: Как использовать в баннере svg?
« Ответ #5 : 23.03.2021, 07:55:34 »
делай подмену расширения в модуле вывода
Для меня это не вариант по двум причинам:
1) с написанием плагинов никак;
2) и самое главное -- те же файлы svg могут использоваться в статьях и если менять у них расширение, то надо создавать дубли файлов для статей.
Придётся жить с исправленным файлом banner.php...
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Как использовать в баннере svg?
« Ответ #6 : 23.03.2021, 08:56:16 »
не, я не у файла расширения менять предлагал, а переименовывать строку с путем.
типа выбрал svg, а в поле поменял ему расширение на bmp

но в текущих реалиях хак ядра не критичен - по сути, скоро выйдет финальный билд тройки и можно 2 года с ним жить
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как использовать карты svg в Joomla?

Автор chen

Ответов: 3
Просмотров: 1653
Последний ответ 24.10.2022, 00:16:50
от gartes
Русская капча. Какую теперь использовать капчу вместо ре-капчи?

Автор natashalina

Ответов: 5
Просмотров: 1934
Последний ответ 26.03.2022, 13:12:28
от Helios
Как использовать CSS-спрайты?

Автор Elimelech

Ответов: 6
Просмотров: 893
Последний ответ 23.03.2020, 09:23:25
от beliyadm
Использовать class shopFunction в другом файле

Автор lara064

Ответов: 0
Просмотров: 626
Последний ответ 14.06.2019, 11:43:49
от lara064
Какой использовать календарь событий?

Автор manexat

Ответов: 6
Просмотров: 1013
Последний ответ 30.11.2018, 18:03:09
от lexxbry