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

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
DST сдвиг
« : 28.10.2009, 23:16:56 »
Кто нибудь понял что это такое и как оно работает?
Это в редактировании данных.
Понятно, что это смещение времени (ВВ ОО, типа летнее-зимнее). Но я НИФИГА не понял, как оно работает!
Во-первых, нельзя поставить ноль, в этом случае показывает 4. Если ставить 4 - оно так и остается.
Установка сдвига на "-1" - перебрасывает меня на полсуток вперед (проверяю какое время по личным сообщениям).
Установка сдвига на 1 приближает меня к заветной цели,но 0, как уже известно - не работает.
Кто-нить с этим сталкивался? что это, как это, зачем это?

Вот щас времени по Москве - 23:13. Так у меня в ЛС ни разу не вышло этого времени. Либо пишу сильно сегодня днем, либо так же сильно завтра днем. Удалось несколько сообщений написать глубокой ночью. Но ни разу в то время, которое на часах указано...

Кошмар!

Письмо в JomSocial все длиннее и длиннее получается...
+
*

SyncMaster

  • Moderator
  • 103
  • 51 / 6
Re: DST сдвиг
« Ответ #1 : 29.10.2009, 01:30:33 »
Нужно выставить реальную разницу с UTC. У меня, к примеру, +5. Показывает правильное время.
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: DST сдвиг
« Ответ #2 : 29.10.2009, 01:44:02 »
я так понял, что там еще и 12-часовой формат... : (

так, примерно вроду удалось время подогнать...
но завтра уже тонкости настраивать буду... : )
+
*

SyncMaster

  • Moderator
  • 103
  • 51 / 6
Re: DST сдвиг
« Ответ #3 : 29.10.2009, 01:51:02 »
Я выставил часовой пояс в настройках JomSocial (/administrator/index.php?option=com_community&view=configuration), и этот же часовой пояс стал показываться по умолчанию у пользователей.
А там каждый пользователь подгоняет под себя.

Всё дело в переводе.

Если понравится компонент (какой-то он ущербный пока), то займусь грамотным переводом «для пользователя», какой делали, к примеру, для SOBI2.
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: DST сдвиг
« Ответ #4 : 29.10.2009, 18:38:52 »
да-да, спасиб, уже разобрался.. что еще и в админке это все меняется. методом проб и ошибок таки сделал пральное время (но все равно, 12-часовой формат - не удобен!).
Перевод брал тут какой-то пролетающий, остальное просто по месту переводил. где-то сам справлялся, где-то брат помогал.
компонент... да.. чувствуется, как хлюпает под ногами... но по крайней мере хлепает под ноги на дороге, которая ведет в светлое будущее, кмк...
аякс с сообщениями, побольше вариантов показа анкеты (в варианте, когда анкета открыта для мэмберов, обычному гостю нельзя посмотреть фотоальбомы пользователя. при том, что с модуля просмотра фотоальбовом доступ получается ко всем абльомам. логики в этом я не вижу)
+
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: DST сдвиг
« Ответ #5 : 29.10.2009, 19:04:15 »
По поводу 12-часовой формат - просили разработчиков добавить настройку... Так всё равно не добавили. :( Вот решение:

Цитировать
As a workaround you can change /libraries/activites.php
replace

    $timeFormat             = $config->get( 'activitiestimeformat' );
    $dayFormat              = $config->get( 'activitiesdayformat' );

with

    //$timeFormat             = $config->get( 'activitiestimeformat' );
    //$dayFormat              = $config->get( 'activitiesdayformat' );
    $dayFormat = "%d %b.";
    $timeFormat = "%H:%M";


Или вот:
Цитировать
To change the date formatting at the activities section go to "components\com_community\libraries\activities.php"(approximately at line 240)

Remove the following line at approximately at line 240 and..

    $createdTime    = $date->toFormat($dayinterval == ACTIVITY_INTERVAL_DAY ? $timeFormat : '%b %d' );

replace with this:

    $createdTime = $date->toFormat($dayinterval == ACTIVITY_INTERVAL_DAY ? '%H:%M' : '%b %d' );
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: DST сдвиг
« Ответ #6 : 30.10.2009, 00:07:24 »
на локалке получилось.
файл /components/com_cmmunity/libraries/activities.php
Код
				//$timeFormat		= $config->get( 'activitiestimeformat' );
//$dayFormat = $config->get( 'activitiesdayformat' );
  $dayFormat = '%d %b.';
  $timeFormat = '%H:%M';
  $date = cGetDate($oRow->created);

второй кусок кода, который для замены - не нужен. там и так строчка подправлена. выглядит так:
Код
				$createdTime 	= $date->toFormat($dayinterval == ACTIVITY_INTERVAL_DAY ? $timeFormat : $dayFormat );

стало показывать время 21:03 (допустим : ))
+
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: DST сдвиг
« Ответ #7 : 30.10.2009, 11:16:09 »
Ну да, можно поменять или там или там. Первый вариант лучше.
*

SibPartizan

  • Захожу иногда
  • 66
  • 1 / 0
Re: DST сдвиг
« Ответ #8 : 27.05.2010, 10:43:31 »
А как сделать нормальный формат времени в сообщениях?
Сей час формат времени отображается по 12 часам.
*

steelcat

  • Захожу иногда
  • 118
  • 13 / 0
Re: DST сдвиг
« Ответ #9 : 30.05.2010, 18:57:14 »
А как сделать нормальный формат времени в сообщениях?
Сей час формат времени отображается по 12 часам.


Это в файлах шаблона:
/components/com_community/templates/default/inbox.message.php
/components/com_community/templates/default/inbox.list.php
заменить %I:%M %p на %H:%M
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться