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

iliaxxx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
На рабочий сайт понадобилось поставить VirtueMart, выбрал третью версию.
Но столкнулся с проблемой
1) Фото товара открывается как обычная картинка.
2) Товар не добавляется в корзину.
Изменения настроик не помогли. Поставил другой шаблон, на другом все прекрасно работает. Как я понял тут проблема не в самом магазине, а в шаблоне который я использую. В какую сторону мне копать что бы заработало?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

iliaxxx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Конфликт яваскриптов
Поставил в шаблон jQuery v2.1.4. Начало нормально отрабатывать увеличений картинок товара при клике на него. Но вот добавить товар в карзину не из категории, не из карточки пока не могу.
*

iliaxxx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Включил отладку, получил вывод:
Код
Сообщение

vmdebug PHP 5.4

vmdebug Show All Errors

vmdebug $siteLang: ru-RU self::$vmlangSef: self::$_jpConfig->lang ru_ru DefLang ru_ru

vmdebug vmTime: time to load config: 0.00731492042541504

vmdebug getVendorId normal shopper

vmdebug Start used Ram 4.75M

vmdebug Going to set pw fields unrequired

vmdebug Created new cart

vmdebug Created new Calculator Instance

vmdebug Calling cache getChildCategoryListObject

vmdebug vmTime: Time to load cats 1: 0.0028531551361084

vmdebug Active vendor 1

vmdebug shipmentmethod Доставка курьером = TRUE for variable weight = 0 Reason: no boundary conditions set

vmdebug shipmentmethod Доставка курьером = TRUE for variable order amount = 0 Reason: no boundary conditions set

vmdebug shipmentmethod Доставка курьером = TRUE for variable virtuemart_country_id, Reason: no boundary conditions set

vmdebug vmTime: Time consumed for shipment/payment plugins: 0.00223493576049805

vmdebug shipmentmethod Доставка курьером = TRUE for variable weight = 0 Reason: no boundary conditions set

vmdebug shipmentmethod Доставка курьером = TRUE for variable order amount = 900 Reason: no boundary conditions set

vmdebug shipmentmethod Доставка курьером = TRUE for variable virtuemart_country_id, Reason: no boundary conditions set

vmdebug vmTime: vm view Finished task : 0.140365123748779

vmdebug End used Ram 8M

vmdebug Peak memory peak 8.25M
Кто подскажет куда копать дальше?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Скопировать код вывода кнопки купить с шаблона, где работает кнопка Купить, в шаблон по умолчанию
*

iliaxxx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Скопировать код вывода кнопки купить с шаблона, где работает кнопка Купить, в шаблон по умолчанию

Не помогло.
Еще одна странность. Когда я покупаю на другом шаблоне, у меня появляется всплывающее окно с предложением перейти к оплате, либо продолжить покупки. На нынешнем же шаблоне, меня сразу кидает в корзину, без всплывающего окна.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расчёт стоимости товара в VirtueMart за периметр

Автор NIKOLY

Ответов: 0
Просмотров: 473
Последний ответ 04.07.2025, 09:18:31
от NIKOLY
VirtueMart 3 Отображать только товары в наличии!

Автор GaziroFFka

Ответов: 4
Просмотров: 3983
Последний ответ 06.06.2023, 13:55:13
от Akeksandr
SP VirtueMart Category Search

Автор ve1006

Ответов: 10
Просмотров: 7861
Последний ответ 18.01.2023, 10:39:10
от AzMandius
Как вывести модуль в страницу VirtueMart?

Автор harddrop

Ответов: 11
Просмотров: 4868
Последний ответ 13.11.2022, 13:11:37
от Evgen Kulibin
Как правильно настроить покупку в VirtueMart?

Автор varella

Ответов: 1
Просмотров: 2817
Последний ответ 12.10.2022, 16:14:04
от varella