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

тормозит открытие корзины


drnemo

Recommended Posts

OC 3.0.2, simple. Для доставки поставил 2 модуля boxberry и CDEK (оба штатных от ТК), теперь при переходе в корзину страница грузится 16-18 секунд (вместо 2, в каждом модуле всего по одному тарифу включено). 

В networke ожидания генерации страницы, каким образом можно отследить в каком месте модуля так тормозит (т.е. тормозит расчет в модуле или обращение к API ТК)?

 

1.png

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


3 минуты назад, chukcha сказал:

Посмотреть количество событий от СДЭКа

Спойлер

image.thumb.png.0f06a3b07b764f33b9bd4ed7d1adcfaa.png

 

:shock::shock: 

И похоже все одинаковые... Косяк в установке, можно все дубли удалить и оставит один?

Спойлер

Триггер
catalog/controller/common/header/before
Действие
event/cdekshipping/addScripts


Триггер
catalog/controller/common/header/before
Действие
event/cdekshipping/addScripts


Информация о событии
Триггер
catalog/controller/common/header/before
Действие
event/cdekshipping/addScripts

 

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


5 минут назад, chukcha сказал:

Там косяк в самом модуле, он кажется при каждом заходе делает инсталл событий

спасибо большое за подсказку, буду рыть модуль сдека

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


удалил все дубли событий, но быстрей стало всего на 2 секунды (открытие корзины стало 14 секунд).

Если отключаю BX, сдэк грузится ~7сек, один BX грузится ~9сек...

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


Удалите все модифкаторы работающие с корзиной,
возможно, у вас есть еще интеграция с ЦРМ

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

18 минут назад, chukcha сказал:

Удалите все модифкаторы работающие с корзиной,
возможно, у вас есть еще интеграция с ЦРМ

модификаторы проверил, ничего лишнего не включено, срм нету. 

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


Если у вас стандартная сборка, и не отключена инициализация отладки

Смотрите
\catalog\controller\event\debug.php

Убрать


//        if ($route == 'common/home') { // add the route you want to test
            $this->session->data['debug'][$route] = microtime();        
//        }


а в

system\config\catalog.php
Сделать примерно так

 

// Action Events
$_['action_event'] = array(
    'controller/*/before' => array(
        'event/language/before',

'event/debug/before'
    ),
    'controller/*/after' => array(
        'event/language/after',

        'event/debug/after'
    ),    
    'view/*/before' => array(
        500  => 'event/theme/override',
        998  => 'event/language',
        1000 => 'event/theme'
    ),
    'language/*/after' => array(
        'event/translation'
    ),
)

Тем самым вы инициируете отладчик, который в логе может показать медленный контроллер
По аналогии
можно прицепить /дополнить  события для моделей

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

11 часов назад, chukcha сказал:

Сделать примерно так

Вот так ругается

Notice: A non well formed numeric value encountered in /var/www/html/catalog/controller/event/debug.php on line 14Notice: A non well formed numeric value encountered in /var/www/html/catalog/controller/event/debug.php on line 14

update - руками перевел во float обе переменные (php 7.2)

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


11 часов назад, chukcha сказал:

Убрать


//        if ($route == 'common/home') { // add the route you want to test
            $this->session->data['debug'][$route] = microtime();        
//        }

И здесь комментирую условие (остается только запись времени), но в логах отображается только время для common/home

 

update - с этим разобрался - убрал условие и в after

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


Для контроллеров ничего ничего медленного не показало, почти все меньше десятой доли секунды

Единственно смутили отрицательные значения времени для пары модулей

(
    [route] => checkout/simplecheckout_customer
    [time] => -0.985959
)

вот все что загрузилось при переходе в корзину

Спойлер

    [route] => checkout/simplecheckout_customer/update_session
    [time] => 0.002307

    [route] => checkout/simplecheckout_payment_address/update_session
    [time] => 0.002673

    [route] => checkout/simplecheckout_shipping_address/update_session
    [time] => 0.005083

    [route] => checkout/simplecheckout_cart/update
    [time] => 0.002406

    [route] => common/column_left
    [time] => 0.007151

    [route] => common/column_right
    [time] => 0.004667

    [route] => common/content_top
    [time] => 0.0045850000000001

    [route] => common/content_bottom
    [time] => 0.0045890000000001

    [route] => common/footer
    [time] => 0.016256

    [route] => extension/analytics/metrika
    [time] => 0.0016969999999999

    [route] => common/language
    [time] => 0.005382

    [route] => common/currency
    [time] => 0.005393

    [route] => common/search
    [time] => 0.003891

    [route] => common/cart
    [time] => 0.013296

    [route] => common/menu
    [time] => 0.013803

    [route] => common/header
    [time] => 0.054821

    [route] => information/information
    [time] => 0.100396

    [route] => checkout/simplecheckout_shipping
    [time] => 0.825327

    [route] => checkout/simplecheckout_payment
    [time] => 0.052102

    [route] => checkout/simplecheckout_cart
    [time] => 0.043462

    [route] => checkout/simplecheckout_customer
    [time] => -0.985959

    [route] => checkout/simplecheckout_payment_address
    [time] => 0.001857

    [route] => checkout/simplecheckout_shipping_address
    [time] => 0.006488

    [route] => checkout/simplecheckout_comment
    [time] => 0.003146

    [route] => common/column_left
    [time] => 0.004752

    [route] => common/column_right
    [time] => 0.003598

    [route] => common/content_top
    [time] => 0.003493

    [route] => common/content_bottom
    [time] => 0.003582

    [route] => common/footer
    [time] => 0.014552

    [route] => extension/analytics/metrika
    [time] => 0.001728

    [route] => common/language
    [time] => 0.005486

    [route] => common/currency
    [time] => 0.004354

    [route] => common/search
    [time] => 0.0036

    [route] => common/cart
    [time] => 0.040175

    [route] => common/menu
    [time] => 0.01229

    [route] => common/header
    [time] => 0.079754

    [route] => checkout/simplecheckout
    [time] => -0.799638

    [route] => common/cart/info
    [time] => 0.036651

 

 

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


А вот в моделях нашлись 2 такие...

(
    [route] => extension/total/coupon/getTotal
    [time] => 7.0000000000014E-5
)

(
    [route] => extension/total/coupon/getTotal
    [time] => 6.7999999999957E-5
)

в указанную модель изменений никаких не вносил (сравнил по-байтово с модулем из коробки)

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


лучше использовать microtime(true)

На самом деле использование сессии не самое лучшее место хранения такой инфы

class ControllerEventDebug extends Controller {
	public function before(&$route, &$args) {
		$this->session->data['debug'][$route] = microtime(true);		
	}
	
	public function after($route, &$args, &$output) {
			if (isset($this->session->data['debug'][$route])) {
				$log_data = array(
					'route' => $route,
					'time'  => microtime(true) - $this->session->data['debug'][$route]
				);
				$this->log->write($log_data);
				unset($this->session->data['debug'][$route]);
			}
	}	
}


Вот немного переделанный класс


 

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

26 минут назад, chukcha сказал:

Вот немного переделанный класс

спасибо, так показал симпл...

 

(
    [route] => checkout/simplecheckout
    [time] => 7.6175181865692
)

Если включить доставку BX и СДЭК (2 модуля), то так....

(
    [route] => checkout/simplecheckout
    [time] => 13.953526973724
)

А в моделях так:

(
    [route] => extension/shipping/cdek/getQuote
    [time] => 8.4984529018402
)
(
    [route] => extension/total/coupon/getTotal
    [time] => 8.0108642578125E-5
)
(
    [route] => tool/simpleapimain/getYesNo
    [time] => 9.7990036010742E-5
)

 

Змінено користувачем drnemo
Надіслати
Поділитися на інших сайтах


6 минут назад, chukcha сказал:

Вот видите, где

ищите там, смотрите, анализируйте
 

Да, спасибо, предполагал что сдэк, там эта функция пол модели занимает...

возможно какой-то конфликт с simple

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


13 минут назад, drnemo сказал:

возможно какой-то конфликт с simple

обращение к внешнему ресурсу

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

2 часа назад, chukcha сказал:

обращение к внешнему ресурсу

да, там json запросы, но только в браузере они у меня выполняются ~0,2 секунды, а моделью OC ~2сек... (параметры вызова абсолютно идентичны)

$this->getURL($this->getInfo()->getAjaxUrl().'city/getListByTerm/json.php?q=' . urlencode($city) . '&name_startsWith=' . urlencode($city), new parser_json());

 

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


пока временно решил переносом сайта в другой ЦОД, поближе к России. Скорость запросов и соответственно отображения корзина увеличилась

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


  • 2 months later...

Приветствую. Есть новости? Аналогичная беда, но на 2.3.

 

Связка simple+cdek+boxbery+почта России.

 

Тоже секунд 5 грузит ато и больше.

Vps в Украине правда, а бизнес в мск. Думаю переносить для начала.

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


10 часов назад, blacki140 сказал:

новости

только переезд сайта ближе. 

Я при выборе временно поднимал vps в тестируемом dataцентре и с сервера (putty) делал такую команду (сайт разворачивать не требуется):

curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nAppCon time:\t%{time_appconnect}\nRedirect time:\t%{time_redirect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null https://api.cdek.ru/city/getListByTerm/json.php?q=%D0%A5%D0%B0%D0%B1%D0%B0%D1%80%D0%BE%D0%B2%D1%81%D0%BA

По ее результатам смотрим Total time, т.е. это время одного запроса с сервера к api ТК (например, сдэка), умножаем это на примерное кол-во таких запросов (для сдэка при переходе в корзину минимум 2-3 делается) и понимаем, что только для отображения стоимости доставки одной ТК тратится 1,5 секунды, а если вариантов доставки 5-6.... 

В итоге подобрал DC с наименьшим откликом, и время открытия корзины сократилось в 2 раза.

Возможно таких проблем можно избежать размещая магазин у российских хостеров, но меня этот вариант менее устраивает по ряду причин.

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


3 часа назад, drnemo сказал:

только переезд сайта ближе. 

Я при выборе временно поднимал vps в тестируемом dataцентре и с сервера (putty) делал такую команду (сайт разворачивать не требуется):


curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nAppCon time:\t%{time_appconnect}\nRedirect time:\t%{time_redirect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null https://api.cdek.ru/city/getListByTerm/json.php?q=%D0%A5%D0%B0%D0%B1%D0%B0%D1%80%D0%BE%D0%B2%D1%81%D0%BA

По ее результатам смотрим Total time, т.е. это время одного запроса с сервера к api ТК (например, сдэка), умножаем это на примерное кол-во таких запросов (для сдэка при переходе в корзину минимум 2-3 делается) и понимаем, что только для отображения стоимости доставки одной ТК тратится 1,5 секунды, а если вариантов доставки 5-6.... 

В итоге подобрал DC с наименьшим откликом, и время открытия корзины сократилось в 2 раза.

Возможно таких проблем можно избежать размещая магазин у российских хостеров, но меня этот вариант менее устраивает по ряду причин.

спасибо, очень исчерпывающий ответ.

Черкните в личку, если есть возможность, хостера, на которого пал выбор в итоге.

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


  • 1 year later...
8 минут назад, PutinVV сказал:

у меня сервер на reg.ru . ничего не помогает. тормозит при расчете стоимости и все! https://wentklimat.ru . OCStore 3.0.2 с simple

Смена хостера тоже не помогает? Нанять программиста тоже не помогает?

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

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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