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

Chikir

  • Захожу иногда
  • 104
  • 1 / 0
Цитировать
Установив код рекламных объявлений Яндекс Директ, через несколько дней я заметил, что без какой-либо зависимости от загружаемой страницы сайта или используемого браузера размер заголовка объявления в некоторых случаях изменяется с первоначально установленного значения 0.9 на 1.0. В те моменты, когда такое происходит, я проверил код страницы: изменений в размере заголовка в коде рекламного объявления Яндекса не было (было установлено значение 0.9, хотя на деле отображался заголовок размером 1.0)

С таким сообщением я обратился с консультацией к ЦОПу Яндекса.

Ответ был следующим:

Цитировать
Возможно, код Яндекса иногда входит в конфликт с javascript'ами, установленными на странице.
Зафиксировать проблему не удалось.
В качестве варианта могу предложить установить отложенный вызов блока Директа и поместить код вызова в самый конец страницы способом, описанным здесь:
http://help.yandex.ru/partner/?id=1027718

Предложенный вариант я реализовал но результат не изменился. Кроме того, я изменил значение размера шрифта с 0.9 на 1.0. После чего шрифт стал прыгать с 1.0 на еще более крупный шрифт. Заметил такую закономерность: если на странице установлено два рекламных блока в разных местах, то шрифт всегда изменяется в обоих.

Если это "конфликт javascript-ов" то как его отследить и устранить? Если нет - то в чем может быть причина таких глюков?
*

Chikir

  • Захожу иногда
  • 104
  • 1 / 0
Re: Возможный конфликт javascript-ов
« Ответ #1 : 17.02.2011, 17:58:13 »
up.

У меня есть предположение, что на изменение шрифта влияет этот код:

Цитировать
 83.      switchFontSize=function(ckname,val){
  84.              var bd = $E('BODY');
  85.              switch (val) {
  86.                      case 'inc':
  87.                              if (CurrentFontSize+1 < 7) {
  88.                                      bd.removeClass('fs'+CurrentFontSize);
  89.                                      CurrentFontSize++;
  90.                                      bd.addClass('fs'+CurrentFontSize);
  91.                              }
  92.                      break;
  93.                      case 'dec':
  94.                              if (CurrentFontSize-1 > 0) {
  95.                                      bd.removeClass('fs'+CurrentFontSize);
  96.                                      CurrentFontSize--;
  97.                                      bd.addClass('fs'+CurrentFontSize);
  98.                              }
  99.                      break;
 100.                      default:
 101.                              bd.removeClass('fs'+CurrentFontSize);
 102.                              CurrentFontSize = val;
 103.                              bd.addClass('fs'+CurrentFontSize);
 104.              }
 105.              Cookie.set(ckname, CurrentFontSize,{duration:365});
 106.      }

Как вы думаете? Кто нибудь может описать для чего нужен этот элемент кода? Я понмаю, что он изменяет размер шрифта, но где именно и в каких случаях?

« Последнее редактирование: 17.02.2011, 18:28:42 от Chikir »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как отключить на сайте JavaScript при переходе с мобильного?

Автор driver56

Ответов: 0
Просмотров: 1542
Последний ответ 17.11.2014, 19:58:25
от driver56
Не работает JavaScript на Joomla 1.5

Автор ip-94

Ответов: 1
Просмотров: 1364
Последний ответ 16.08.2013, 01:31:51
от flyingspook
Не работает JavaScript в админке Joomla 1.5.26

Автор ip-94

Ответов: 2
Просмотров: 2447
Последний ответ 29.07.2013, 00:15:20
от ip-94
У меня не работает javascript на Joomla 1.5

Автор Two-Lik

Ответов: 1
Просмотров: 1357
Последний ответ 29.03.2013, 14:43:41
от Two-Lik
Menu JavaScript+jQuery+html/css

Автор Lekkter

Ответов: 4
Просмотров: 2110
Последний ответ 29.03.2013, 11:26:46
от Lekkter