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

baton4uk

  • Новичок
  • 6
  • 0 / 0
Здравствуйте. Нужна помощь..Сделан каталог на php (делал не я).

На локальном сервере отображается нормально
А на хостинге почему то открывает в модальном окне..

никаких мыслей - в чем может быть ошибка( php знаю плохо..

код php. расположен  папка шаблона\html\com_content\category\blogprice.php

Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

JHtml::_('behavior.caption');
?>
<div class="double-title"><h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1><a href="/images/price.pdf" target="_blank"><div class="tittle-download"><?php echo JText::_('TPL_DOWNLOADPRICE'); ?></div> <img src="images/ico_download.png" /></a></div>

<?php
$introcount = (count($this->intro_items));
$counter = 0;
?>

<?php if (!empty($this->intro_items)) : ?>
<?php
$newcat = false;
$curcat = 0;
$index = 1;
foreach ($this->intro_items as $key => &$item) : ?>
<?php $rowcount = ((int) $key % (int) $this->columns) + 1;
$this->item = & $item;$iddd = $this->item->catid;
$catid = JCategories::getInstance('Content')->get($iddd);
if ($curcat !== $iddd)
{$newcat = true; $curcat = $iddd; $rowcount--;}
else{$newcat = false;}
?>
<?php if ($rowcount == 1) : ?>
<?php $row = $counter / $this->columns; ?>
<?php endif; ?>

<?php if($newcat ):?>
<?php if (($index%3 ==0)): $index++;?>
<div class="clear bottom24"></div>
<?php endif; ?>
<h2 class="bolgh2"><a name="<?php echo $catid->alias; ?>"><?php echo $catid->title; ?></a></h2>
<?endif;?>
<?php $images = json_decode($this->item->images);?>
<div class="elem-price">
<?php if(!empty($images->image_fulltext)):?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>?tmpl=elemprice"  title="<?php echo $this->item->title;?>" class="price-img" rel="{handler: 'iframe', size: {x: 100%, y: 100%}}"><img src="<?php echo htmlspecialchars($images->image_intro);?>" title="<?php echo $this->item->title;?>" />
<div class="clear"></div>
<p class="item-title" ><?php echo $this->item->title;?></p>
<p class="item-price"><?php echo $images->image_intro_alt;?> руб.</p>
</a>
<?php else:?>
<img src="<?php echo htmlspecialchars($images->image_intro);?>" title="<?php echo $this->item->title;?>" />
<div class="clear"></div>
<p><?php echo $this->item->title;?></p>
<p><?php echo $images->image_intro_alt;?> руб.</p>
<?php endif;?>
</div>
<?php if ($index%3 ==0) : ?>
<div class="clear bottom20"></div>
<?php endif; $index++;?>
<?php endforeach; ?>
<?php endif; ?>

<?php if (($this->params->def('show_pagination', 1) == 1 || ($this->params->get('show_pagination') == 2)) && ($this->pagination->get('pages.total') > 1)) : ?>
<div class="pagination">
<?php if ($this->params->def('show_pagination_results', 1)) : ?>
<p class="counter pull-right"> <?php echo $this->pagination->getPagesCounter(); ?> </p>
<?php endif; ?>
<?php echo $this->pagination->getPagesLinks(); ?> </div>
<?php endif; ?>
*

Ragivort

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
Мб это?
rel="{handler: 'iframe', size: {x: 100%, y: 100%}}
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

baton4uk

  • Новичок
  • 6
  • 0 / 0
спасибо за ответ, тоже думал про эту запись, но что в ней исправить?

пробовал и на хостинге и на локальном все изменения с этой записью и удалял запись, и атрибуты менял, всеравно - все как и было, никаких изменений совсем(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отображение модуля меню на странице материала

Автор kunsaid

Ответов: 9
Просмотров: 1308
Последний ответ 21.07.2021, 10:50:29
от kunsaid
Как исправить отображение?

Автор itbc

Ответов: 7
Просмотров: 1098
Последний ответ 23.05.2021, 09:53:42
от itbc
Непонятное отображение одной страницы сайта

Автор itbc

Ответов: 12
Просмотров: 1074
Последний ответ 14.12.2020, 13:42:32
от itbc
Корректное отображение фона

Автор Rebarun

Ответов: 5
Просмотров: 1054
Последний ответ 25.07.2020, 13:56:12
от Rebarun
Protostar - неправильное отображение мобильной версии

Автор Albaruthenica

Ответов: 0
Просмотров: 1023
Последний ответ 22.06.2020, 14:25:57
от Albaruthenica