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

Жихарка

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Изменить addtocart_form
« : 07.11.2010, 01:22:47 »
Хочется поменять вид формы "Количество", там, где выводятся цифры на такую форму, как у "Размер". Как это можно сделать?
Вот картинка:

Вот код (взят с addtocart_form.tpl.php):
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<div class="vmCartContainer">
   
<?php
mm_showMyFileName(__FILE__);
// This function lists all product children ( = Items)
// or, when not children are defined, the product_id
// SO LEAVE THIS IN HERE!
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )  ? $product_parent_id : $product_id );

if ($children != "multi") {

    if( CHECK_STOCK == '1' && !$product_in_stock ) {
      $notify = true;
    } else {
    $notify = false;
    }

?>
    <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_')?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>

<?php
}
echo $html;

if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )) {
?>
        <?php if ($children != "multi") { ?>
     <div style="clear:both;"></div>
<div style="float: left; margin-left: -2px;"><?php
    if ($children == "drop") {
    echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
    }
    if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
    }
    $button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
    $button_cls = 'addtocart_button';
    if( CHECK_STOCK == '1' && !$product_in_stock ) {
      $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
      $button_cls = 'notify_button';
    }
    ?>   
    <input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
    </div>
    <?php  } ?>   
    <input type="hidden" name="flypage" value="shop.<?php echo $flypage ?>" />
<input type="hidden" name="page" value="shop.cart" />
    <input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />
    <input type="hidden" name="category_id" value="<?php echo $category_id ?>" />
    <input type="hidden" name="func" value="cartAdd" />
    <input type="hidden" name="option" value="<?php echo $option ?>" />
    <input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
    <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
    <input type="hidden" name="master_product[]" value="" />
    <?php
}
if ($children != "multi") { ?>
</form>
<?php
}
    if($children == "radio") { ?>
   
    <script language="JavaScript" type="text/javascript">//<![CDATA[
    function alterQuantity(myForm) {
        for (i=0;i<myForm.selItem.length;i++){
            setQuantity = myForm.elements['quantity'];
            selected = myForm.elements['selItem'];
            j = selected[i].id.substr(7);
            k= document.getElementById('quantity' + j);
            if (selected[i].checked==true){
                k.value = myForm.quantity_adjust.value; }
            else {
                k.value  = 0;
            }
        }
    }
//]]>   
</script>
<?php } ?>
</div>

Буду очень благодарна за помощь!)))) ^-^
*

Жихарка

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Изменить addtocart_form
« Ответ #1 : 14.11.2010, 20:19:02 »
ап!
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Изменить addtocart_form
« Ответ #2 : 14.11.2010, 20:56:55 »
с разделом промахнулись.
а то мешает вместо
Код
if ($children == "drop") { 
    echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
    }
    if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
    }
свой select написать?
главное - имя правильное поставить
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как изменить межстрочный интервал в списке?

Автор kirill-juk

Ответов: 2
Просмотров: 2018
Последний ответ 28.10.2017, 18:51:40
от kirill-juk
Изменить страницу "Default"

Автор virusvvv

Ответов: 4
Просмотров: 1760
Последний ответ 12.01.2017, 14:48:08
от virusvvv
Изменить текст ссылки, выводимой в адресной строке

Автор acamaz

Ответов: 2
Просмотров: 1890
Последний ответ 28.11.2016, 20:59:45
от KKAAZZOO
Изменить Email

Автор andrei1537

Ответов: 5
Просмотров: 2193
Последний ответ 06.07.2016, 01:21:16
от Aleks_El_Dia
Как изменить нижний колонтитул?

Автор фантом

Ответов: 19
Просмотров: 24866
Последний ответ 13.03.2016, 17:57:10
от KKAAZZOO