ifx
Захожу иногда

Репутация: +4/-0
Offline
Сообщений: 5
|
 |
« : 10.08.2010, 01:40:52 » |
|
Привет! Давно я здесь не был под своим логином. Но вот сегодня настал момент оптимизации моего небольшого магазинчика и я начал рыть...Не суть, нашел решение. Применил у себя на сайте, был потрясен результатами и удивлен что на форуме никто еще об этом не написал. Поэтому специально восстановил забытый пароль и спешу...кароче начинаем!  Идем вот суда: /ваш_сайт/www/administrator/components/com_virtuemart/html/ там находим файл shop_browse_queries.phpоткрываем и ищем 61 строчку $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; заменяем ее на $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни. Оригинальная тема на форуме виртуамарта - http://forum.virtuemart.net/index.php?topic=65103.0Висит с января 2010 как видите..там же дальше в 3-ех страницах можете почитать благодарственные отзывы народа, с каталогом в 5000-30.000 товаров, и как у них все стало летать. К слову там же можно найти и каммент разработчика по этому поводу. А если копнуть свосем глубоко, некий малый, я так понимаю русский (нкто haword) выложил свой вариант файла shop_browse_queries.php Кому лень копаться в коде, вот ссылки (файл приаттачить почему-то не могу) http://slil.ru/29548397 - версия от Udo http://slil.ru/29548399 - версия от haword ВАЖНО: кол-во запоросов не уменьшилось. Изменилось само качество запроса. ВАЖНО №2: чтобы уменьшить кол-во запросов к БД (тобишь кэшировать их) юзайте вот этот замечтательный компонент: QueryCache 1.5.0 RC2 (for Joomla 1.5.x) - http://www.joomlaperformance.com/component/option,com_docman/task,cat_view/gid,41/Itemid,39/Мануалка по установке - http://www.joomlaperformance.com/component/option,com_easyfaq/task,view/id,28/Itemid,7/ВАЖНО №3: Сам еще пока не проверял (в ближайшие пару часов) нашел еще вот такой интересный вариант кэша - http://forum.virtuemart.net/index.php?topic=43602.0Обо мне: Joomla 1.5.18 Virtuemart 1.1.4 После установки QueryCache кол-во запросов в VirtueMart при просмотре товара сократилось в 1.5 раза После установки хака + querycache магазин стал грузится за Application afterLoad: 0.000 seconds, 0.40 MB Application afterInitialise: 0.188 seconds, 4.55 MB Application afterRoute: 0.197 seconds, 5.46 MB Application afterDispatch: 0.455 seconds, 18.28 MB Application afterRender: 0.519 seconds, 19.36 MB Успехов ребят!  ----------------------------- P.S. from BeaglerПо просьбам трудящихся Важное замечание №0 "разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас."
|
|
|
|
« Последнее редактирование: 15.05.2011, 00:10:02 от beagler »
|
Записан
|
|
|
|
| |
|
skyscraper
|
 |
« Ответ #31 : 09.11.2010, 16:59:31 » |
|
webo платная и не дешевая, но достаточно и нулл версии, чтобы покопать разные настройки, у меня половина не работает, некоторые ещё больше заставляют тупить, поэтому выбрал базовые настройки, кеш подкрутил с CSS... прирост есть... тоже думаю, что было бы не плохо переделать формирование товара, но для этого надо переписать пол магаза и базу модифицировать, на вирте куча модификаций, а остальные магазы недоразвиты... ещё поправил у себя выгрузку картинок, а то достали по одной грузиться  /html/shop_browse.php где-то 340 строка: 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/show_image_in_imgtag.php?filename=".urlencode($product_thumb_image)."&newxsize=".PSHOP_IMG_WIDTH."&newysize=".PSHOP_IMG_HEIGHT."&fileout="; } меняем на 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;и взлетаем без image_tag =))
|
|
|
|
« Последнее редактирование: 12.11.2010, 15:07:13 от skyscraper »
|
Записан
|
|
|
|
yevrowl
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 247
|
 |
« Ответ #32 : 26.11.2010, 01:30:05 » |
|
х3, врубил этот QueryCache, настроил как в факе, а он грузанул файлами сервак так, что меня отключили =) пришлось его вырубить... вот полезная статья ещёАналогично, другие обработчики кроме File у меня к примеру вовсе недоступны...
|
|
|
|
|
Записан
|
|
|
|
Lester
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 24
|
 |
« Ответ #33 : 27.11.2010, 14:10:48 » |
|
Офигеть! Магазин работал нормально, но категория, в которую загружал около 3К товара - жутко начинала тормозить.
Воспользовался советом ifx - просто летает. Спасибо тебе дружище!
|
|
|
|
|
Записан
|
|
|
|
dreamark
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 30
|
 |
« Ответ #34 : 29.11.2010, 10:02:07 » |
|
а как узнать это? : Application afterLoad: Application afterInitialise: Application afterRoute: Application afterDispatch: Application afterRender:
|
|
|
|
|
Записан
|
|
|
|
dreamark
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 30
|
 |
« Ответ #35 : 29.11.2010, 10:18:02 » |
|
а всё разобрался
|
|
|
|
|
Записан
|
|
|
|
back
Давно я тут
  
Репутация: +6/-0
Offline
Пол: 
Сообщений: 259
Все просто если по очереди)
|
 |
« Ответ #36 : 21.12.2010, 16:14:03 » |
|
В версии 1.1.6 для этого дела предусмотрели уже специальное условия $tmpdb->query( "SELECT COUNT(*) AS parentcnt FROM #__{vm}_product WHERE product_parent_id>0"); $tmpdb->next_record(); if($tmpdb->f('parentcnt')>0) { $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; } else { $where_clause[] = "`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`"; }
то есть если есть product_parent товары то берется первый вариант если нет - то второй. Если у вас их нет и вы не планируете, то можете закоментировать все это и под ним просто написать $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)"; Это для 1.1.6 виртуемарта даст выиграш в один запрос, но ускорение в 10 раз уже заложено в него.
|
|
|
|
|
Записан
|
|
|
|
BlackinWhite
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 100
|
 |
« Ответ #37 : 26.12.2010, 04:41:44 » |
|
У меня VirtueMart 1.1.4, но у меня нет shop_browse_queries.php в /ваш_сайт/www/administrator/components/com_virtuemart/html/ И еще такой вопрос, откуда вы берете данную статистику: Application afterLoad: 0.000 seconds, 0.40 MB Application afterInitialise: 0.188 seconds, 4.55 MB Application afterRoute: 0.197 seconds, 5.46 MB Application afterDispatch: 0.455 seconds, 18.28 MB Application afterRender: 0.519 seconds, 19.36 MB
Заранее спасибо!
|
|
|
|
|
Записан
|
|
|
|
prituz
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 11
|
 |
« Ответ #38 : 01.02.2011, 11:51:56 » |
|
В админ.панели -> общие настройки -> система -> справа "Отладка системы" и "Отладка локализации"
и еще в админ.панель. -> компоненты -> VirtueMart -> настройки -> внизу страницы "Режим отладки"
там кроме этой статистики еще много полезного...
|
|
|
|
|
Записан
|
|
|
|
prituz
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 11
|
 |
« Ответ #39 : 01.02.2011, 11:53:15 » |
|
а если нет файла shop_browse_queries.php то как сайт работает?  посмотрите внимательнее...
|
|
|
|
|
Записан
|
|
|
|
prituz
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 11
|
 |
« Ответ #40 : 01.02.2011, 11:57:43 » |
|
Еще народ, может кто знает, на странице категорий много запросов связанных с tax_rate, например: SELECT tax_rate FROM jom_vm_product, jom_vm_tax_rate WHERE product_tax_id=tax_rate_id AND product_id='1234'
где можно закомментировать эти обращения, поскольку в таблицах связанных с tax записей нет, второй день копаюсь.
я думаю такой манипуляцией можно убить как минимум число запросов равное числу товаров в категории...
|
|
|
|
|
Записан
|
|
|
|
|
morph
|
 |
« Ответ #41 : 01.02.2011, 20:35:16 » |
|
Еще народ, может кто знает, на странице категорий много запросов связанных с tax_rate, например: SELECT tax_rate FROM jom_vm_product, jom_vm_tax_rate WHERE product_tax_id=tax_rate_id AND product_id='1234'
где можно закомментировать эти обращения, поскольку в таблицах связанных с tax записей нет, второй день копаюсь.
я думаю такой манипуляцией можно убить как минимум число запросов равное числу товаров в категории...
читаем внимательнее.хорош написано ...почти все  http://joomlaforum.ru/index.php/topic,89688.msg569895.html#msg569895
|
|
|
|
|
Записан
|
|
|
|
Andrew1110
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 164
|
 |
« Ответ #42 : 25.03.2011, 10:14:51 » |
|
Идем вот суда: там находим файл shop_browse_queries.phpоткрываем и ищем 61 строчку $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; заменяем ее на $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни. Использую связку Joomla 1.5.7 VirtueMart 1.1.3 stable что-то не могу найти строки, которую можно заменить! Может кто-нибудь подскажет, каким образом ускорить работу связки? Вообще в этой версии есть возможность описанного хака?
|
|
|
|
|
Записан
|
|
|
|
Andrew1110
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 164
|
 |
« Ответ #43 : 25.03.2011, 11:16:56 » |
|
Подскажите пожалуйста, вот это нормальная скорость?
•Информация о профиле• Application afterLoad: 0.002 seconds, 0.53 MB Application afterInitialise: 0.203 seconds, 6.06 MB Application afterRoute: 0.203 seconds, 6.06 MB Application afterDispatch: 0.308 seconds, 9.28 MB Application afterRender: 0.381 seconds, 10.43 MB
|
|
|
|
|
Записан
|
|
|
|
Andrew1110
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 164
|
 |
« Ответ #44 : 25.03.2011, 16:51:30 » |
|
И еще ...кто подскажет под каким именем QueryCache потом стоит в менеджере плагинов?
|
|
|
|
|
Записан
|
|
|
|
kiriamba
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #45 : 23.04.2011, 15:51:02 » |
|
разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас. +1 Добавил в FAQ
скажите на пальцах по простому что значит слова "дочерние товары" ?
|
|
|
|
|
Записан
|
|
|
|
yevrowl
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 247
|
 |
« Ответ #46 : 23.04.2011, 15:53:27 » |
|
скажите на пальцах по простому что значит слова "дочерние товары" ? Товары во вложенных категориях.
|
|
|
|
|
Записан
|
|
|
|
|
|
kiriamba
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #48 : 24.04.2011, 08:33:46 » |
|
Попробовал Спасибо) ну не в 10 раз конечно но раза в 2 точно быстрее стало работать
|
|
|
|
|
Записан
|
|
|
|
Ex3qtR
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #49 : 13.05.2011, 15:25:10 » |
|
Вопрос по теме : у меня почему-то при выборе способа кеширования - только файл. Как добавить эти способы кеширования?
|
|
|
|
|
Записан
|
|
|
|
Sedoy
Support Team
   
Репутация: +77/-10
Offline
Пол: 
Сообщений: 1084
Интересно,в какой кодировке пишут врачи?
|
 |
« Ответ #50 : 14.05.2011, 14:30:02 » |
|
разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас. вообще то это очень важное замечание я б его "вытащил" наверх - что б не вводило в заблуждение при прочтении главного посыла - как "важно № 0!"
|
|
|
|
|
Записан
|
|
|
|
|
al-teen
|
 |
« Ответ #51 : 14.05.2011, 14:41:07 » |
|
разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас. Так и думал, что что то тут не то. Название топика уж очень сильно поповщиной отдает. 
|
|
|
|
|
Записан
|
|
|
|
Сергеич
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 91
|
 |
« Ответ #52 : 14.06.2011, 11:59:18 » |
|
тоды можно описать что в томже файле можно грохать проверки на производителя,налоги,скидки,группы пользователей и т.п. что можно убрать если это не используется... Подскажите, как убрать проверку на производителя - я это значение не использую. Заранее благодарю!
|
|
|
|
|
Записан
|
|
|
|
Vadim_Bone
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 41
|
 |
« Ответ #53 : 28.08.2011, 23:53:49 » |
|
Это какой-то ужас, на магазине около 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
сделал абсолютно все, что написано на форуме и получил такие космические цифры... даже не знаю что делать...народ, подскажите...
|
|
|
|
|
Записан
|
|
|
|
Vadim_Bone
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 41
|
 |
« Ответ #54 : 03.09.2011, 15:25:54 » |
|
никто не поможет?
|
|
|
|
|
Записан
|
|
|
|
2181
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 50
|
 |
« Ответ #55 : 19.11.2011, 18:45:25 » |
|
Вот, что выдает отладка: Информация о профиле Application afterLoad: 0.001 seconds, 0.49 MB Application afterInitialise: 0.062 seconds, 3.96 MB Application afterRoute: 0.083 seconds, 5.31 MB Application afterDispatch: 150.997 seconds, 11.38 MB Application afterRender: 151.046 seconds, 11.69 MB Использование памяти 12345356 Зарегистрировано запросов: 408 Это нормально для Virtuemarta?
А как в Joomla 1.5 увидеть такую отладочную инфу?
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #56 : 19.11.2011, 18:53:00 » |
|
А как в Joomla 1.5 увидеть такую отладочную инфу?
в настройках - отладка системы - вкл.
|
|
|
|
|
Записан
|
|
|
|
M@X1M
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 43
|
 |
« Ответ #57 : 20.11.2011, 22:24:04 » |
|
Может кто пояснить, почему "про дочерние товары можно забыть"? У меня дочерние используются, хак применил, ничего не изменилось, только скорость загрузки реально выросла. Правда условие взял отсюда: http://joomlaforum.ru/index.php/topic,89688.msg572160.html#msg572160 А именно, вместо: $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; стало: if( empty( $keyword ) ) { $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)"; } else { $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; }
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #58 : 08.12.2011, 21:34:47 » |
|
Идем вот суда: там находим файл shop_browse_queries.phpоткрываем и ищем 61 строчку $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; заменяем ее на $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни. Ни какой разницы не заметил: До: Application afterLoad: 0.000 seconds, 0.39 MB Application afterInitialise: 0.069 seconds, 6.02 MB Application afterRoute: 0.081 seconds, 6.99 MB Application afterDispatch: 2.996 seconds, 16.72 MB Application afterRender: 3.037 seconds, 17.58 MB После: Application afterLoad: 0.000 seconds, 0.39 MB Application afterInitialise: 0.069 seconds, 6.04 MB Application afterRoute: 0.084 seconds, 7.01 MB Application afterDispatch: 2.880 seconds, 16.70 MB Application afterRender: 2.978 seconds, 18.15 MB Кеш очищал и пробовал в разных браузерах. У меня в вышеприведённом файле есть похожие две строчки: $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)"; $where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=`#__{vm}_category`.`category_id`"; Может с этим что-то не так?
|
|
|
|
« Последнее редактирование: 08.12.2011, 21:38:05 от newjey »
|
Записан
|
|
|
|
|