Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] Opencart Profiler Vqmod


snastik

Recommended Posts

Opencart Profiler Vqmod


Opencart Profiler Vqmod


Простой Profiler для отладки магазинов.

Добавляет после футера лог с полезной информацией.

Отображает время загрузки страницы и общее количество запросов.

А также подробную статистику, время выполнения и контроллер по каждому sql - запросу.

Очень полезно для выявления узких мест.

Для Opencart 1.5.6.x - отдельная версия.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ПО ПРЕТЕНЗИЯМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ЭТИМ ДОПОЛНЕНИЕМ.


 

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Время в Total time   - это суммарное время выполнения SQL запросов для страницы или время выполнения запросов + время реакции сервера на выдачу контента?

 

Сейчас у меня загрузка страницы  0.7814 seconds, из них если суммировать время запросов получается всего лишь 0,0494 сек. Следовательно запросы sql в принципе оптимизированы. Как узнать куда ушла львиная доля времени из этих 0.78 секунд?

Надіслати
Поділитися на інших сайтах

Время в Total time   - это суммарное время выполнения SQL запросов для страницы или время выполнения запросов + время реакции сервера на выдачу контента?

 

Это время генерации контента. С момента обращения к index.php до момента финального рендера html.

Надіслати
Поділитися на інших сайтах

Т.е. грубо говоря, если разбросать лог-таймеры по коду начиная с точки входа до рендера, можно узнать проблемные участки кода, а не только запросов,  я правильно понимаю? Еще бы как нибудь определить загруженность самого сервера, ибо магазин на шаред-хостинге... ресурсы сервера очень распылены по всем желающим :) Поэтому робот Яндекса часто обижается с ошибкой 408 и стучит в СКК Маркета, а это плохо.

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Т.е. грубо говоря, если разбросать лог-таймеры по коду начиная с точки входа до рендера, можно узнать проблемные участки кода, а не только запросов,  я правильно понимаю? Еще бы как нибудь определить загруженность самого сервера, ибо магазин на шаред-хостинге... ресурсы сервера очень распылены по всем желающим :) Поэтому робот Яндекса часто обижается с ошибкой 408 и стучит в СКК Маркета, а это плохо.

 

В движке нет особой математики, за счет модели MVC, практически вся нагрузка идет на базу. Искать тормоза в коде смысла нет. 90% нагрузки создают запросы. Вот их профайлер отлавливает на ура.

Надіслати
Поділитися на інших сайтах

Да, я это уже понял. Код неплох, что не скажешь о запросах. Сменил хостера, немного оптимизировал запросы - и все просто залетало.

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Скажите, почему такие долгие запросы query time:0.1718 seconds | controller: ControllerProductCategory в Корне каталога? Как это испровить? Поможет ли TurboCache?

 

Вариантов много - от слабого сервера mysql, до отсутсвия индексов в базе.  Турбокеш частично снимает нагрузку на базу.

Надіслати
Поділитися на інших сайтах

Вариантов много - от слабого сервера mysql, до отсутсвия индексов в базе.  Турбокеш частично снимает нагрузку на базу.

Индексы проставлял согласно этой статьи  http://ocshop.info/tormozit-opencart-chast-2/

Надіслати
Поділитися на інших сайтах


  • 1 month later...
  • 1 month later...

У меня, после использования этого файла(даже после удаления профайлера.), баннер на главной странице стал грузиться медленнее.

Он и так запаздывал на 3-4 сек по сравнению с остальной страницей, но явно не так, как сейчас - 15-20.

Причем, это случилось и на рабочем магазине и на клон. 

 

В чем может быть причина и что делать?

OC 1.5.5.1

 

Может быть, мод внес изменение в какой нибудь файл? 

Бекап есть, но не знаю что перезаписать.

Надіслати
Поділитися на інших сайтах


Наконец то догадался почистить кеш vqmod и магазина.

Теперь все ок.

 

Предидущее сообщение решил не редактировать.

Может кому нить поможет в аналогичной ситуации. 

 

В общем, все путем если не считать, что результат проверки был удручающим.

При 2000 тов. / 100 кат. загрузка / запросы - под 5сек / 1500

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Хороший модуль! Обнаружил лишние запросы. Удалось избавиться от некоторых. Было 97 запросов. Стало 20!

Осталось это:

query time:0.006 seconds | controller: ControllerCommonHeader
SELECT * FROM category c LEFT JOIN category_description cd ON (c.category_id = cd.category_id) LEFT JOIN category_to_store c2s ON (c.category_id = c2s.category_id) WHERE cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.parent_id, c.sort_order, cd.name
 
Как его можно убрать? Для чего оно вообще? Иногда бывает - query time:0.054 seconds
Надіслати
Поділитися на інших сайтах


 

Тип выборки

Возможные ключи Ключ Ссылка Строки Дополнительная информация SIMPLE : c2s
index
PRIMARY PRIMARY (8)   107 Using where; Using index; Using temporary; Using filesort SIMPLE : cd
eq_ref
PRIMARY PRIMARY (8) kosmet16_db.c2s.category_id,const 1 Using where SIMPLE : c
eq_ref
PRIMARY PRIMARY (4) kosmet16_db.c2s.category_id 1 Using where

SELECT * FROM category c LEFT JOIN category_description cd ON (c.category_id = cd.category_id) LEFTJOIN category_to_store c2s ON (c.category_id = c2s.category_id) WHERE cd.language_id = '1' ANDc2s.store_id = '0' AND c.STATUS = '1' ORDER BY c.parent_id, c.sort_order, cd.name

Еще есть такая инфа, я не знаю Иксплейн это оно или нет:)

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Наконец то догадался почистить кеш vqmod и магазина.

Теперь все ок.

 

Предидущее сообщение решил не редактировать.

Может кому нить поможет в аналогичной ситуации. 

 

В общем, все путем если не считать, что результат проверки был удручающим.

При 2000 тов. / 100 кат. загрузка / запросы - под 5сек / 1500

пригодилось))

Надіслати
Поділитися на інших сайтах


пригодилось))

 

Там жуткий модуль у человека на главной, который на 10-15 категорий  формирует хиты, акции и тд.

Надіслати
Поділитися на інших сайтах

А подскажите, пожалуйста, всего 2 категории в магазине, в одной категории 542 товаров, в другой 291.

Для первой категории
Total time 1.2343 seconds |Total queries:735

Для второй категории

Total time 0.9168 seconds | Total queries:484

Почти все запросы вида:
controller: ControllerProductCategory
SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM oc_product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '1') AS reward, (SELECT ss.name FROM oc_stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '7') AS stock_status, (SELECT wcd.unit FROM oc_weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '7') AS weight_class, (SELECT lcd.unit FROM oc_length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '7') AS length_class, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM oc_review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '479' AND pd.language_id = '7' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0'

 

Может знает кто, что-нибудь изменить или упростить можно, чтобы быстрее страница грузилась?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.