Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

0 Пользователей и 1 Гость просматривают эту тему.
  • 197 Ответов
  • 82356 Просмотров
*

A.Nitro

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
А как ты ето все определил мне интересно очень))))
Шаблон тяжелый походу вот и тормозит...
js меню + нестандартная увеличивалка картинок.


Определил пейдж спидом!

Я не знаю мождно выкладывать ссылки на свои сайт или нет но расскажу что я делал со своим магазом
Шаблон полностью очищен он лишних неиспользуемых блоков
меню выводиться скриптом и 2 запроса использую
ссs объедены и сжаты и еще в них удалено многое
дальше былы удалены многие запросы как предлагаться выше но не все так как я например использую товары со скидками
*

Andrew1110

  • Захожу иногда
  • 165
  • 0 / 0
Информация о профиле
Application afterLoad: 0.002 seconds, 0.53 MB
Application afterInitialise: 0.124 seconds, 6.06 MB
Application afterRoute: 0.124 seconds, 6.06 MB
Application afterDispatch: 0.490 seconds, 8.38 MB
Application afterRender: 0.567 seconds, 9.34 MB
Использование памяти
9843032
18 зарегистрированных запросов

Это при включении режим отладки -отладка системы- да... Я так понимаю это для центральной страницы с категориями. А как получить эту же информацию при загрузке товаров категории? .... и... Это нормальные характеристики? или над ними тоже надо работать?
« Последнее редактирование: 07.04.2011, 16:22:27 от Andrew1110 »
*

Servelatin

  • Захожу иногда
  • 132
  • 1 / 0
как рыба об лёд...
Joomla 1.5.22 + VM 1.1.8 stable + query cache 1.5 rev374 night
Всё оптимизировано по всем советам и не советам. В базе примерно 50 категорий+500 подкатегорий+7000 конечных категорий (и это я ещё товар не залил..)
Результат: загрузка главной 30 сек.
ИНФОРМАЦИЯ О ПРОФИЛЕ
Application afterLoad: 0.000 seconds, 0.38 MB
Application afterInitialise: 0.046 seconds, 4.32 MB
Application afterRoute: 0.052 seconds, 5.02 MB
Application afterDispatch: 0.087 seconds, 8.60 MB
Application afterRender: 7.256 seconds, 36.57 MB
ИСПОЛЬЗОВАНИЕ ПАМЯТИ 38461616
ЗАРЕГИСТРИРОВАНО ЗАПРОСОВ: 10

Вопрос: Откуда набегают эти 30 секунд и 37мб загрузки ?
*

flyingspook

  • Moderator
  • 3590
  • 247 / 9
Цитировать
Вопрос: Откуда набегают эти 30 секунд и 37мб загрузки ?
смотреть надо в слепую мало что можно сказать
что грузится, что подцеплено
*

Servelatin

  • Захожу иногда
  • 132
  • 1 / 0
Да ничего не подцеплено (на мой взгляд)
из модулей:
mod_mainmenu
mod_banners
mod_syndicate
mod_simpleform2
mod_virtuemart
mod_virtuemart_search
mod_virtuemart_featureprod
mod_news_pro_gk4
mod_latestnews

...меню DTree..

вот листинг загрузки главной:

ЗАРЕГИСТРИРОВАНО ЗАПРОСОВ: 10

SELECT *
  FROM jos_session
  WHERE session_id = '3dfa6134addc8af0ff153c2355272fac'
DELETE
  FROM jos_session
  WHERE ( time < '1307115011' )
SELECT *
  FROM jos_session
  WHERE session_id = '3dfa6134addc8af0ff153c2355272fac'
UPDATE jos_session
  SET `time`='1307117711',`userid`='62',`usertype`='Super Administrator',`username`='admin',`gid`='25',`guest`='0',`client_id`='0',`data`='__default|a:9:{s:15:\"session.counter\";i:45;s:19:\"session.timer.start\";i:1307108481;s:18:\"session.timer.last\";i:1307117450;s:17:\"session.timer.now\";i:1307117661;s:24:\"session.client.forwarded\";s:14:\"79.165.177.152\";s:22:\"session.client.browser\";s:100:\"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71 Safari/534.24\";s:8:\"registry\";O:9:\"JRegistry\":3:{s:17:\"_defaultNameSpace\";s:7:\"session\";s:9:\"_registry\";a:1:{s:7:\"session\";a:1:{s:4:\"data\";O:8:\"stdClass\":0:{}}}s:7:\"_errors\";a:0:{}}s:4:\"user\";O:5:\"JUser\":19:{s:2:\"id\";s:2:\"62\";s:4:\"name\";s:13:\"Administrator\";s:8:\"username\";s:5:\"admin\";s:5:\"email\";s:20:\"admin@buzapchasti.ru\";s:8:\"password\";s:65:\"6f475d31762f94155539c567c51771a2:UYsA3LqCRqDzuq4OhvAH0hzXjaTNBGah\";s:14:\"password_clear\";s:0:\"\";s:8:\"usertype\";s:19:\"Super Administrator\";s:5:\"block\";s:1:\"0\";s:9:\"sendEmail\";s:1:\"1\";s:3:\"gid\";s:2:\"25\";s:12:\"registerDate\";s:19:\"2011-05-24 05:31:23\";s:13:\"lastvisitDate\";s:19:\"2011-06-03 15:49:43\";s:10:\"activation\";s:0:\"\";s:6:\"params\";s:0:\"\";s:3:\"aid\";i:2;s:5:\"guest\";i:0;s:7:\"_params\";O:10:\"JParameter\":7:{s:4:\"_raw\";s:0:\"\";s:4:\"_xml\";N;s:9:\"_elements\";a:0:{}s:12:\"_elementPath\";a:1:{i:0;s:81:\"/home/iamsexru/public_html/buzapchasti.ru/libraries/joomla/html/parameter/element\";}s:17:\"_defaultNameSpace\";s:8:\"_default\";s:9:\"_registry\";a:1:{s:8:\"_default\";a:1:{s:4:\"data\";O:8:\"stdClass\":0:{}}}s:7:\"_errors\";a:0:{}}s:9:\"_errorMsg\";N;s:7:\"_errors\";a:0:{}}s:13:\"session.token\";s:32:\"8b3e4dcaf60c21a513b2ecd84caa7613\";}auth|a:13:{s:11:\"show_prices\";i:1;s:7:\"user_id\";s:2:\"62\";s:8:\"username\";s:5:\"admin\";s:5:\"perms\";s:5:\"admin\";s:10:\"first_name\";N;s:9:\"last_name\";N;s:7:\"country\";s:2:\"US\";s:3:\"zip\";s:0:\"\";s:16:\"shopper_group_id\";s:1:\"5\";s:22:\"shopper_group_discount\";s:4:\"0.00\";s:24:\"show_price_including_tax\";s:1:\"1\";s:21:\"default_shopper_group\";s:1:\"1\";s:22:\"is_registered_customer\";b:1;}cart|a:1:{s:3:\"idx\";i:0;}recent|a:1:{s:3:\"idx\";i:0;}ps_vendor_id|s:1:\"1\";minimum_pov|N;vendor_currency|s:3:\"RUB\";vmMiniCart|b:0;userstate|a:1:{s:10:\"product_id\";i:0;}last_page|s:11:\"shop.browse\";last_browse_parameters|a:7:{s:11:\"category_id\";s:2:\"24\";s:15:\"manufacturer_id\";i:0;s:7:\"keyword\";b:0;s:8:\"keyword1\";s:0:\"\";s:8:\"keyword2\";s:0:\"\";s:8:\"featured\";s:1:\"N\";s:10:\"discounted\";s:1:\"N\";}'
  WHERE session_id='3dfa6134addc8af0ff153c2355272fac'
SELECT a.id, a.title, a.alias, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by, a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.images, a.attribs, a.urls, a.metakey, a.metadesc, a.access, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(':', a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, g.name AS groups, u.email AS author_email, cc.title AS category, s.title AS section, s.ordering AS s_ordering, cc.ordering AS cc_ordering, a.ordering AS a_ordering, f.ordering AS f_ordering
  FROM jos_content AS a
  INNER JOIN jos_content_frontpage AS f
  ON f.content_id = a.id
  LEFT JOIN jos_categories AS cc
  ON cc.id = a.catid
  LEFT JOIN jos_sections AS s
  ON s.id = a.sectionid
  LEFT JOIN jos_users AS u
  ON u.id = a.created_by
  LEFT JOIN jos_groups AS g
  ON a.access = g.id
  WHERE 1
  AND a.access <= 2
  AND a.state >= 0
  ORDER BY  f.ordering
SELECT *, RAND() AS ordering
  FROM jos_banner
  WHERE showBanner = 1
  AND (imptotal = 0 OR impmade < imptotal)
  AND cid = 1
  AND catid = 1
  ORDER BY sticky DESC, ordering
  LIMIT 0, 1
UPDATE jos_banner
  SET impmade = impmade + 1
  WHERE bid = 1
SELECT `cart_content`
  FROM `jos_vm_cart`
  WHERE `user_id`=62
SELECT DISTINCT product_sku
  FROM jos_vm_product
  WHERE (jos_vm_product.product_parent_id='' OR jos_vm_product.product_parent_id='0')
  AND vendor_id='1'
  AND jos_vm_product.product_publish='Y'
  AND jos_vm_product.product_special='Y'
  ORDER BY RAND()
  LIMIT 0, 3
SELECT published
  FROM jos_modules
  WHERE module='mod_virtuemart_cart'


Подкиньте мыслей
*

flyingspook

  • Moderator
  • 3590
  • 247 / 9
Подкиньте мыслей

смотреть шаблон
картинки
скрипты
стили
и все это оптимизировать
*

Vadim_Bone

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Это какой-то ужас, на магазине около 3-х тыс товаров, но

Информация о профиле
Application afterLoad: 0.005 seconds, 0.39 MB
Application afterInitialise: 0.411 seconds, 4.14 MB
Application afterRoute: 2.904 seconds, 7.33 MB
Application afterDispatch: 8.967 seconds, 19.16 MB
Application afterRender: 19.196 seconds, 28.09 MB
Зарегистрировано запросов: 1708

сделал абсолютно все, что написано на форуме и получил такие космические цифры... даже не знаю что делать...народ, подскажите...
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Включать отладку и смотреть откуда берутся запросы. По мегабайтам вкладка "сеть" FireBug даст представление.
*

vov41k

  • Осваиваюсь на форуме
  • 14
  • 1 / 1
www.astykzhan.kz Общее количество товаров 25000 ед., время генерации в категории удалось уменьшить до 0,3 сек, при общем кол-ве запросов 26.
КАК? 0_0

У меня на главной 40, просомотр товара 40. просмотр категории 150.

есть ли нормальных кэш для VirtueMart?
кроме qcache?
« Последнее редактирование: 09.09.2011, 16:37:08 от vov41k »
*

vov41k

  • Осваиваюсь на форуме
  • 14
  • 1 / 1
В магазине 8000 товаров. около 70 категорий. При выводе 20 товаров в категории генерируется 350-420 запросов. При просмотре товара генерируется около 60 запросов.

Методом научного втыка были проведены следующие изменения.



ps_perm.php

Запрос

строка 35

         
Код
$db->query('SELECT group_id,group_name,group_level FROM `#__{vm}_auth_group` ORDER BY group_level');

         
ps_product.php

строка 654-656

      
Код
$q  = "SELECT `product_type_id` FROM `#__{vm}_product_product_type_xref` WHERE ";
$q .= "`product_id`=$product_id";
$db->query($q);

строка 823

      
Код
$db->query( "SELECT file_id FROM #__{vm}_product_files WHERE file_product_id='$product_id'" );

строка 1033-1035

         
Код
$q  = "SELECT COUNT(product_id) as num_rows FROM #__{vm}_product WHERE product_parent_id='$pid' ";
$db->query($q);
$db->next_record();

строка 1148-1153

      
Код
$q = "SELECT #__{vm}_vendor.vendor_name FROM #__{vm}_product, #__{vm}_vendor ";
$q .= "WHERE #__{vm}_product.product_id='$product_id' ";
$q .= "AND #__{vm}_vendor.vendor_id=#__{vm}_product.vendor_id";

$db->query($q);
$db->next_record();

строка 1217-1221

Код
		$q = "SELECT manufacturer_id FROM #__{vm}_product_mf_xref ";
$q .= "WHERE product_id='$product_id' ";

$db->query($q);
$db->next_record();

строка 1239-1244

Код
		$q = "SELECT mf_name,#__{vm}_manufacturer.manufacturer_id FROM #__{vm}_product_mf_xref,#__{vm}_manufacturer ";
$q .= "WHERE product_id='$product_id' ";
$q .= "AND #__{vm}_manufacturer.manufacturer_id=#__{vm}_product_mf_xref.manufacturer_id";

$db->query($q);
$db->next_record();

строка 1577-1579

            
Код
$q = 'SELECT tax_rate FROM #__{vm}_product, #__{vm}_tax_rate ';
$q .= 'WHERE product_tax_id=tax_rate_id AND product_id='.(int)$product_id;
$db->query($q);

строка 2324-2327

         
Код
$q = "SELECT amount,is_percent FROM #__{vm}_product,#__{vm}_product_discount ";
$q .= "WHERE product_id='$product_id' AND (start_date<='$starttime' OR start_date=0) AND (end_date>='$endofday' OR end_date=0) ";
$q .= "AND product_discount_id=discount_id";
$db->query( $q );

строка 2339-2340
Код
                $q = "SELECT product_parent_id FROM #__{vm}_product WHERE product_id=$product_id";
                $db->query($q);

строка 2342-2345

         
Код
$q = "SELECT amount,is_percent FROM #__{vm}_product,#__{vm}_product_discount ";
$q .= "WHERE product_id='".$db->f("product_parent_id")."' AND (start_date<='$starttime' OR start_date=0) AND (end_date>='$endofday' OR end_date=0) ";
$q .= "AND product_discount_id=discount_id";
db->query( $q );
строка 2645

   
Код
        $q .= "(#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') \n";

строка 2763-2772

         
Код
	$q = "SELECT product_name, category_name, c.category_flypage,product_s_desc,product_thumb_image ";
$q .= "FROM #__{vm}_product as p,#__{vm}_category as c,#__{vm}_product_category_xref as cx ";
$q .= "WHERE p.product_id = '$prod_id' ";
$q .= "AND c.category_id = '$category_id' ";
$q .= "AND p.product_id = cx.product_id ";
$q .= "AND c.category_id=cx.category_id ";
$q .= "AND p.product_publish='Y' ";
$q .= "AND c.category_publish='Y' ";
$q .= "LIMIT 0,1";
$db->query( $q );

файл ps_product_attribute.php

строка 263-264

Код
		$q = "SELECT product_id,product_name FROM #__{vm}_product WHERE product_parent_id='$product_id' AND product_publish='Y'" ;
$db->query($q.$q1);

строка 720-722

Код
		$q = "SELECT product_id, attribute, product_parent_id FROM #__{vm}_product WHERE product_id='$product_id'";
$db->query($q);
$db->next_record();
      
строка 725-727

Код
			$q = "SELECT product_id, attribute FROM #__{vm}_product WHERE product_id='$parent_id'";
$db->query($q);
$db->next_record();

строка 809-811

Код
		$q = "SELECT product_id, custom_attribute, product_parent_id FROM #__{vm}_product WHERE product_id='$product_id'";
$db->query($q);
$db->next_record();

строка 814-816
Код
			$q = "SELECT product_id, custom_attribute FROM #__{vm}_product WHERE product_id='$parent_id'";
$db->query($q);
$db->next_record();

файл ps_product_category.php

строка 926-933

Код
		$q = "SELECT category_id, category_thumb_image, category_child_id,category_name FROM #__{vm}_category,#__{vm}_category_xref ";
$q .= "WHERE #__{vm}_category_xref.category_parent_id='$category_id' ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";
$q .= "AND #__{vm}_category.vendor_id='$ps_vendor_id' ";
$q .= "AND #__{vm}_category.category_publish='Y' ";
$q .= "ORDER BY #__{vm}_category.list_order, #__{vm}_category.category_name ASC";
$db->setQuery($q);
$db->query();

строка 1202-1206

Код
		$q = "SELECT category_id, category_description FROM #__{vm}_category ";
$q .= "WHERE category_id='$category_id' ";
$db->setQuery($q);   $db->query();

$db->next_record();
      
строка 1274-1278

Код
		$q = "SELECT category_id, category_name,category_parent_id FROM #__{vm}_category, #__{vm}_category_xref WHERE ";
$q .= "#__{vm}_category_xref.category_child_id='$category_id' ";
$q .= "AND #__{vm}_category.category_id='$category_id'";
$db->setQuery($q);   $db->query();
$db->next_record();

файл product.file_list.php

строка 604-611

Код
		$sql = 'SELECT DISTINCT file_id, file_mimetype, file_title, file_name'
. ' FROM `#__{vm}_product_files` WHERE ';
if( $exclude_filename ) {
$sql .= ' file_title != \''.$exclude_filename.'\' AND ';
}
$sql .= 'file_product_id = \''.$product_id.'\' AND file_published = \'1\' AND file_is_image = \'0\'';
$dbf->setQuery($sql);
$dbf->query();
      
строка 682
      
Код
$db->query( "SELECT * FROM `#__{vm}_product_files` WHERE `file_product_id`=".intval($pid)." AND `file_is_image`=1 AND `file_published`=1" );

строка 684-685

Код
			$db->query("SELECT product_parent_id FROM #__{vm}_product WHERE product_id=".intval($pid) );
$db->query( "SELECT * FROM `#__{vm}_product_files` WHERE `file_product_id`=".$db->f("product_parent_id")." AND `file_is_image`=1 AND `file_published`=1" );

строка 693

      
Код
$db->query( "SELECT * FROM `#__{vm}_product_files` WHERE `file_product_id`=".intval($pid)." AND `file_is_image`=0 AND `file_published`=1" );

строка 695

         
Код
$db->query("SELECT product_parent_id FROM #__{vm}_product WHERE product_id='$pid'");

строка 698

         
Код
$db->query( "SELECT * FROM `#__{vm}_product_files` WHERE `file_product_id`=".$db->f("product_parent_id")." AND `file_is_image`=0 AND `file_published`=1" );

файл ps_product_type.php

строка 514-515

Код
		$q = "SELECT * FROM #__{vm}_product_product_type_xref WHERE product_id='$product_id'";
$db->query($q);

файл ps_shopper_group.php

строка 372-375

Код
			$q = "SELECT shopper_group_id,shopper_group_discount FROM #__{vm}_shopper_group WHERE ";
$q .= "vendor_id='$vendor_id' AND `default`='1'";
$db->query( $q );
$db->next_record();

файл ps_vendor.php
заменить
строка 441-444

Код
		$q = "SELECT vendor_id, vendor_min_pov,vendor_name,vendor_store_name,contact_email,vendor_full_image, vendor_freeshipping,
vendor_address_1,vendor_address_2, vendor_url, vendor_city, vendor_state, vendor_country, country_2_code, country_3_code,
vendor_zip, vendor_phone, vendor_store_desc, vendor_currency, vendor_currency_display_style,
vendor_accepted_currencies, vendor_address_format, vendor_date_format, state_name
на

      
Код
$q = "SELECT vendor_id, vendor_currency, vendor_currency_display_style		
      

файл shop.product_details.php

строка 83-86

Код
$q = "SELECT product_sku, related_products FROM #__{vm}_product,#__{vm}_product_relations ";
$q .= "WHERE #__{vm}_product_relations.product_id='$product_id' AND product_publish='Y' ";
$q .= "AND FIND_IN_SET(#__{vm}_product.product_id, REPLACE(related_products, '|', ',' )) LIMIT 0, 4";
$db->query( $q );

файл shop_browse_queries.php

заменить строка 37-39

Код
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`,`author`,`location`,`publisher`,`god`,`pages`,`isbn`,`format`,`savepages`,`nomer`,`tip`,`product_url`,
`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";

на

Код
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,
`#__{vm}_product`.`product_id`,`product_s_desc`,`product_sku`,`author`,`location`,`publisher`,`god`,`pages`,`isbn`,`format`,`savepages`,`nomer`,`tip`
";


В результате:

Категории -  сократились с 350-420 до 120
Просмотр товара - с 60 до 30

Все удаленные запросы лично мне не были нужны, возможно кому-то пригодится.

http://www.onlinedisk.ru/file/363934/

После этого, в категории при переходе на следующую страницу, месяется шаблон сайта на стандартный и:
Код
    SQL/DB Error -- [User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100)]

    SQL/DB Error -- [User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100)]

Код
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering
        Ошибка при загрузке модулей:User 'ПОЛЬЗОВАТЕЛЬ_БД' has exceeded the 'max_questions' resource (current value: 100) SQL=SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 0 AND ( mm.menuid = 186 OR mm.menuid = 0 ) ORDER BY position, ordering


*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
vov41k в shop_browse_queries.php лишку убрал, внимательнее читай свои нужные поля =)

пс: не помню писали хак про картинки, но он очень актуален, при входе в категорию картинки обрабатывает image tag и у многих они появляются по очереди, поэтому надо в admin/com_virtuemart/html/shop.browse найти и заменить следующие поля с product_thumb_image
Цитировать
        if( $db_browse->f("product_thumb_image") ) {
            $product_thumb_image = $db_browse->f("product_thumb_image");
      }
      
      if( $product_thumb_image ) {
         if( substr( $product_thumb_image, 0, 4)!= "http" ) {
            if(PSHOP_IMG_RESIZE_ENABLE == '1') {
               $product_thumb_image = $mosConfig_live_site."/components/com_virtuemart/shop_image/product/".$product_thumb_image;
            }
            elseif( !file_exists( IMAGEPATH."product/".$product_thumb_image )) {
                    $product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE;
                }
         }
      }
      else {
         $product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE;
      }

      // Get the full image path, or URL if set, or the no_image
      if( $db_browse->f("product_full_image") ) {
         $product_full_image = $db_browse->f("product_full_image");
      } elseif( $product_parent_id != 0 ) {
         $product_full_image = $dbp->f("product_full_image"); // Use product_full_image from Parent Product
      }
      else {
         $product_full_image = VM_THEMEURL . 'images/' . NO_IMAGE;

         // Get the size information for the no_image
         if( file_exists( VM_THEMEPATH . 'images/' . NO_IMAGE ) ) {
            $full_image_info = getimagesize( VM_THEMEPATH . 'images/' . NO_IMAGE );
            $full_image_width = $full_image_info[0]+40;
            $full_image_height = $full_image_info[1]+40;
         }
      }

      // Get image size information and add the full URL
      if( substr( $product_full_image, 0, 4)!= 'http' ) {
         // This is a local image
         if( file_exists( IMAGEPATH . 'product/' . $product_full_image ) ) {
            $full_image_info = getimagesize( IMAGEPATH . 'product/' . $product_full_image );
            $full_image_width = $full_image_info[0]+40;
            $full_image_height = $full_image_info[1]+40;
         }
   
         $product_full_image = IMAGEURL . 'product/' . $product_full_image;
      } elseif( !isset( $full_image_width ) || !isset( $full_image_height ) ) {
         // This is a URL image
         $full_image_info = getimagesize( $product_full_image );
         $full_image_width = $full_image_info[0]+40;
         $full_image_height = $full_image_info[1]+40;
      }
*

askhab

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Использовал хак hawordа не помогло.
Вот что происходит:

Информация о профиле
Application afterLoad: 0.000 seconds, 0.25 MB
Application afterInitialise: 0.058 seconds, 2.38 MB
Application afterRoute: 0.082 seconds, 3.60 MB
Application afterDispatch: 0.119 seconds, 5.26 MB
Application afterRender: 5.960 seconds, 13.53 MB
Использование памяти
14262040
Зарегистрировано запросов: 2101

У меня около 8 тыс товаров. Категории вложены до 5 подкатегорий.

все запросы генерит mod_product_categories, если его отключить вот что происходит:

Информация о профиле
Application afterLoad: 0.000 seconds, 0.25 MB
Application afterInitialise: 0.025 seconds, 2.38 MB
Application afterRoute: 0.048 seconds, 3.60 MB
Application afterDispatch: 0.084 seconds, 5.26 MB
Application afterRender: 0.786 seconds, 8.47 MB
Использование памяти
8948864
Зарегистрировано запросов: 175

Прям райское наслаждение)). Нр убрать никак не могу, так как не представляю как клиент будет искать например процессор, если вложенность  такая   Компьютерная техника - Комплектующие ПК - Процессоры  - Процессоры :: Процессоры Intel  - Процессоры Intel Core i7/i5/i3/Pentium Socket 1155

что можно сделать, посоветуйте, пожалуйста.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Использовать другой модуль категорий, тут есть неплохие, например danik.html делал такой.
*

zlodey87

  • Новичок
  • 2
  • 0 / 0
не легче самому написать запрос и выдернуть опубликованные категории и подкатегории, потом у каждой категории задать свою ссылку
*

DiffuSer

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Подскажите, а хак haword'а подходит для 1.1.9? И не режет ли он какой-либо функционал?
*

Eduard

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Вот, что было сделано мной для оптимизации.
Для начала сел и проанализировал, что используется, а что - нет и не будет. И отсюда начал плясать.
Версия вирта 1.9
В магазине около 250 категорий. Сейчас товаров около 3 тыс, планируется до 7-8 тыс.

Вот такие допущения были мной приняты:
1. Дочерние товары не используются
2. Свойства и типы товаров не используются
3. Не используются похожие товары
4. Не используется расчет налогов
5. Не используются производители
6. Файлы и дополнительные картинки на странице категории не выводятся
7. Рейтинг товаров нам не нужен на страницах категории (всё равно им никто не пользуется)

Для начала убираем нафиг вывод картинок в тегах: echo ps_product::image_tag в файле browse_x. Это уже дает результат, а затем начинаем копать файл shop.browse.php

Комментим строки 161-169:
Код
$db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
        $db->next_record();
        $mainframe->setPageTitle( $db->f("mf_name") );

        $browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") );
        $tpl->set( 'browsepage_lbl', $browsepage_lbl );
        $browsepage_lbltext = $db->f("mf_desc");
        $tpl->set( 'browsepage_lbltext', $browsepage_lbltext );
        $browsepage_header = $tpl->fetch( 'browse/includes/browse_header_manufacturer.tpl.php' );

То же самое 412-414
Код
$files = ps_product_files::getFilesForProduct( $db_browse->f('product_id') );
        $products[$i]['files'] = $files['files'];
        $products[$i]['images'] = $files['images'];

Комментим строку 433
Код
$product_rating = ps_reviews::allvotes( $db_browse->f("product_id") );

И нужно закомментировать ненужные переменные со строк 457-485.

Комментим строки 510-511
Код
$recent_products = $ps_product->recentProducts(null,$tpl->get_cfg('showRecent', 5));
    $tpl->set('recent_products',$recent_products);

Ещё есть смысл поиграть с выводом и расчетом прайса, но туда я пока не добрался

До проведения оптимизации число запросов было: 652 (при выводе 20 товаров на страницу).
После проведения: 104
До оптимизации: 25Mb оперативки
После: 19Mb

Взято тут.
*

Amid1210

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Это какой-то ужас, на магазине около 3-х тыс товаров, но

Информация о профиле
Application afterLoad: 0.005 seconds, 0.39 MB
Application afterInitialise: 0.411 seconds, 4.14 MB
Application afterRoute: 2.904 seconds, 7.33 MB
Application afterDispatch: 8.967 seconds, 19.16 MB
Application afterRender: 19.196 seconds, 28.09 MB
Зарегистрировано запросов: 1708

Где это можно проверить, подскажите? это сайт или прога?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Amid1210, включите режим отладки (debug) в настройках Joomla. Отладочная инфа появится на сайте внизу страницы.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

openx

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
1.1.19 все перепробывал дабы поднять скорость вывода страниц - все впустую. И тут - в админке включив gzip сжатие - даже визуально заметил ускорение раз в 20 минимум, все стало открываться влёт!

Главная страница

Информация о профиле
Application afterLoad: 0.002 seconds, 0.11 MB
Application afterInitialise: 0.036 seconds, 0.62 MB
Application afterRoute: 0.040 seconds, 0.82 MB
Application afterDispatch: 0.078 seconds, 1.30 MB
Application afterRender: 0.223 seconds, 2.58 MB
Использование памяти
2763532
Зарегистрировано запросов: 354

ну и все остальные +/- в том же районе
*

Plavic

  • Новичок
  • 1
  • 0 / 0
Здравствуйте.
Проделывал данные модификации - сайт ускорился.

Но тут хостер вчера прислал сообщение:

В вашем аккаунте зафиксировано превышение квоты
на загрузку сервера баз данных.
База данных, превышающая квоту:  gb_kupic1

Параметры запроса, вызывающего проблему:
(приводятся параметры одного из запросов)

Время исполнения, секунд   - 17
Кол-во просмотренных строк - 6206
Запрос:
-------
use gb_kupic1;
SET timestamp=1332493313;
select * from ( SELECT DISTINCT `product_name`, `product_desc`, `default`,
`shopper_group_id`, `products_per_row`,`category_browsepage`,`category_flypage`,
`jos_vm_category`.`category_id`,
            `jos_vm_product`.`product_id`,`product_full_image`,`product_thumb_image`,
`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,
`product_sku`, `product_url`,
            `product_weight`,`product_weight_uom`,`product_length`,`product_width`,
`product_height`,`product_lwh_uom`, `product_available_date`,`product_availability`,
`jos_vm_product`.`mdate`, `jos_vm_product`.`cdate` FROM (`jos_vm_product`,
`jos_vm_category`, `jos_vm_product_category_xref`,`jos_vm_shopper_group`)
WHERE (`jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_id`
OR `jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_parent_id`)
 AND `jos_vm_product_category_xref`.`category_id`=`jos_vm_category`.`category_id`
 AND `jos_vm_product_category_xref`.`category_id`=31
 AND `product_publish`='Y'
 AND `category_publish`='Y'  ) as jos_vm_product LEFT JOIN `jos_vm_product_price`
ON (`jos_vm_product`.`product_id` = `jos_vm_product_price`.`product_id`)
 WHERE ((`jos_vm_product`.`product_id`=`jos_vm_product_price`.`product_id`
AND `jos_vm_product`.`shopper_group_id`=`jos_vm_product_price`.`shopper_group_id`)
OR `jos_vm_product_price`.`product_id` IS NULL)
 AND `jos_vm_product`.`default` = 1
 AND `product_parent_id`=0
 GROUP BY `jos_vm_product`.`product_sku`
 ORDER BY `jos_vm_product`.`product_name` ASC LIMIT 0, 20;
-------

ВАЖНО: ключевой параметр - количество просмотренных
строк, а не время исполнения запроса (время
роли не играет).

Если вы хотите продолжать пользоваться нашими услугами,
вам необходимо в короткий срок решить проблему.
Ваш аккаунт или БД может быть заблокированы, так как
подобная нагрузка может вызывать перегрузку сервера баз данных
и отказ в обслуживании для других клиентов.



Что делать?) Помогите.
*

dreamer85

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
в общем заметил  такую особенность до отключении функции отображения колличества товаров в скобках рядом с категорией колличество запросов было
Информация о профиле
Application afterLoad: 0.003 seconds, 0.52 MB
Application afterInitialise: 0.152 seconds, 4.98 MB
Application afterRoute: 0.167 seconds, 5.41 MB
Application afterDispatch: 1.154 seconds, 11.88 MB
Application afterRender: 4.562 seconds, 14.20 MB
Использование памяти
14986756
Зарегистрировано запросов: 2595

после отключения стало

Информация о профиле
Application afterLoad: 0.046 seconds, 0.52 MB
Application afterInitialise: 0.957 seconds, 4.98 MB
Application afterRoute: 1.052 seconds, 5.41 MB
Application afterDispatch: 2.665 seconds, 11.35 MB
Application afterRender: 12.132 seconds, 13.32 MB
Использование памяти
14057168
Зарегистрировано запросов: 23
*

uamobile

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
гляньте пожалуйста http://uamobile.com.ua/ , отладка системы включена, формируется оч. много запросов, хаки от haword сделал, вознаграждение гарантирую )), заранее спасибо
*

Servelatin

  • Захожу иногда
  • 132
  • 1 / 0
гляньте пожалуйста http://uamobile.com.ua/ , отладка системы включена, формируется оч. много запросов, хаки от haword сделал, вознаграждение гарантирую )), заранее спасибо

Юзай eaccelerator в связке с memcached.
Удали лишнее из шаблонов.
*

uamobile

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
в этом не очень, можно подробней
*

Servelatin

  • Захожу иногда
  • 132
  • 1 / 0
eaccelerator - кэширование php
memcached - кэширование данных

Устанавливается на сервак. Соответственно FAQ ищешь для нужной оси.
Для примера, у меня 45000 позиций в магазине, не лагает.
*

uamobile

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
eaccelerator - кэширование php
memcached - кэширование данных

Устанавливается на сервак. Соответственно FAQ ищешь для нужной оси.
Для примера, у меня 45000 позиций в магазине, не лагает.
так ведь сайт на хостинге, лагов нет, просто кол-во запросов большое
*

Servelatin

  • Захожу иногда
  • 132
  • 1 / 0
так ведь сайт на хостинге, лагов нет, просто кол-во запросов большое
1) Хостинг Ваш можно не хило ускорить, если конечно есть права доступа.
2) Я не наблюдаю чтобы твой сайт тормозил и долго выдавал страницы.
3) Быстрее быстрого не будет.
*

uamobile

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
1) Хостинг Ваш можно не хило ускорить, если конечно есть права доступа.
2) Я не наблюдаю чтобы твой сайт тормозил и долго выдавал страницы.
3) Быстрее быстрого не будет.
прав доступа на такое нету, смущает кол-во запросов большое, спасибо. буду пытаться оптимизировать еще шаблон.
*

dirijat

  • Осваиваюсь на форуме
  • 17
  • 2 / 0
прав доступа на такое нету, смущает кол-во запросов большое, спасибо. буду пытаться оптимизировать еще шаблон.

Причем тут шаблон. У тебя весь сайт тормозит. Начиная с того что ты ява скрипты раздаешь долго, потом еще и Google analytics нужно ассинхронно выдавать, спрайты для картинок (ну это сложнее), все это минимизировать и в gzip, вот тогда страница не будет весить по мегабайту и грузиться за 8-11 секунд. И наступит тебе счастье.
В общем зайди по этой ссылке и сам все поймешь. http://gtmetrix.com/reports/uamobile.com.ua/Nn4pZj88
*

VDmitriy

  • Новичок
  • 6
  • 0 / 0
так еще кое какие модификации, тестировал на общем количестве товара около 10000 штук, грузиться все быстрее из за уменьшения времени выборки товара по условиям из базы, если у кого есть большие объемы протестируйте.
http://files.mail.ru/UZEUQ6
Доброго времени суток!
К сожалению ссылка уже не активна - где взять последний хак от Haword ? Если есть, что то лучше подскажите
Хостинг заблочил сайт, нужно срочно что то решать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 23563
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10539
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 54540
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28701
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
VirtueMart 1.1.8 - Наличие: Есть (по умолчанию) + Наличие: ZZZ (бр

Автор Nessy74

Ответов: 6
Просмотров: 2849
Последний ответ 22.01.2016, 13:24:17
от AzMandius