Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

тормозит opencart


 Поделиться

Рекомендованные сообщения

Всем привет!

Есть магазин, с десяток категорий, пять товаров.

шаблон shoppica.

время ответа сервера 10-15 секунд.

от куда такая задержка?

профилировал базу, там все ок, база не грузит вообще.

проблема видимо где-то зарыта в пхп, но вот где именно, я понять не могу...

сделал профилирование xdebug, поставил webgrind, но там я вообще мало что понял :(

помогите плиз кто-нибудь решить проблему :)

зы версия ocStore v1.5.1.3

Ссылка на комментарий
Поделиться на других сайтах


У тебя два основных чудовища: vqmod и shoppica

Тормозят из-за медленной ФС.

Попробуй включить кеширование vqmod и выложи новые данные...

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Yesvik, спасибо!

только что такое ФС? файловая система?

кеш у vqmod включил, теперь загрузка 4-5 сек.

профайлинг прикрепил.

cachegrind.txt

Ссылка на комментарий
Поделиться на других сайтах


вобщем, удалил vqmode, и руками установил все модули, которые через него работали.

время ответа сервера 2-2,5 сек.

поставил стандартную тему вместо shoppica: 0,7-1 сек.

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

Ссылка на комментарий
Поделиться на других сайтах


судя по профайлеру то чуток жрет ф-ция getTotalProducts, закешировал ее, тем самым сохранив еще 0,15-0,2 сек.



public function getTotalProducts($data = array()) {
    $cache = md5(http_build_query($data));
    $datas = $this->cache->get('getTotalProducts.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);

    if ($datas === FALSE) {
        $datas = $this->getTotalProductsCache($data);
        $this->cache->set('getTotalProducts.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache, $datas);
    }
    return $datas;
}
    
public function getTotalProductsCache($data = array()) {
...

а, да, у меня стоит мемкешед, что еще чуток ускоряет.

это конечно мелочи, но когда время отклика 0,5сек - это приятно.

еще бы нормальную модульную систему в движек, без извращения под названием "vqmod", было бы вообще круто :)

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


О... ты и сам всё раскопал...

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

А мемкешед далеко не мелочи... можно сделать на много меньше 0,5сек.

Ссылка на комментарий
Поделиться на других сайтах

О... ты и сам всё раскопал...

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

отключил в менюшке в хедере. ощутимого прироста нет, т.к. эта штука у меня уже закеширована :)

А мемкешед далеко не мелочи... можно сделать на много меньше 0,5сек.

вот хочу этого добиться, но не хватает знаний.

подскажешь как?

в какую сторону копать?

Ссылка на комментарий
Поделиться на других сайтах


Давай для начала определимся с чем надо бороться...

В начале index.php, сразу после строки

<?php
добавь

if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
	define('START_TIME', microtime(true));
}

А в конце index.php, перед строкой

?>
добавь

if (defined('START_TIME')) {
	echo "\n<!-- Execution Time: ", sprintf("%.6f", abs(microtime(true) - START_TIME)), " sec -->";
}
Ссылка на комментарий
Поделиться на других сайтах

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

Тестирую на денвере,

ocStore v1.5.1.3,

шаблон Crista,

есть Vqmod и модули autorelate, clear_cache, export, vqmod_opencart

товаров 2500,

категорий 150

Вставил чудо-код, чтобы поглядеть скорость загрузки и в общем вот:

<!-- Execution Time: 3.623929 sec -->

С чего бы мне начать ускорение?

Со стандартным шаблоном:

<!-- Execution Time: 3.895005 sec -->

Ссылка на комментарий
Поделиться на других сайтах


т.е. копать не в сторону движка, а в сторону сервака?

Для начала потрепай сервак... явно тупит ФС

Когда начнёш прикручивать shoppica - учти что на фоне вычисляется куча разной фигни которая не используется. Надо отслеживать и отрубать все лишаки.

Ссылка на комментарий
Поделиться на других сайтах

Никто не подскажет? Я только что уже переустановил полностью опенкарт, ничего кроме vqmod и плагина export-import не ставил.

Загрузил 2500 товаров и все, начались тормаза.

<!-- Execution Time: 3.589725 sec -->

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

Ссылка на комментарий
Поделиться на других сайтах


Универсальных рецептов по оптимизации нет.

Всё зависит от многих факторов... и в первую очередь от конфигурация магазина.

Вот ocStore 1.5.1.3 на бесплатном хостинге http://opencart.site90.net/os/ в базе 1000 категорий, 10000 товаров

К стандартному ocStore прикручено только кеширование (кеширует в файлы на диске)

Но можно открыть HTML код и в конце страницы посмотреть статистику формирования страницы без кеша и статистику отдачи страницы из кеша

Например, для главной страницы http://opencart.site90.net/os/ статистика такая

<!--
Cache Put: Mon, 30 Jan 2012 09:31:44 +0000
Cache Lifetime: 86400 sec
Memory Real: 3.5 mb
Memory Peak: 3.313 mb
Memory Usage: 2.654 mb
Execution Time: 0.111798 sec
-->
<!--
Cache Get: Mon, 30 Jan 2012 09:32:09 +0000
Memory Real: 0.5 mb
Memory Peak: 0.42 mb
Memory Usage: 0.262 mb
Execution Time: 0.002277 sec
-->
Без кеша стрнаница генерится 0.111798 секунды... как видиш это сильно отличается от твоих 3,5 сек.

Из кеша страница страница отдаётся 0.002277 секунды.

Можно конечно возразить что на главной практически ничего не выводится и поэтому быстро формируется страница... и я с этим отчасти соглашусь, но вот тяжелая страница

http://opencart.site...ame=1&limit=100 это поиск товаров и вывод 100 результатов на странице

Найдено 4805 товаров и выведена первая сотня...

<!--
Cache Put: Mon, 30 Jan 2012 09:51:04 +0000
Cache Lifetime: 86400 sec
Memory Real: 5 mb
Memory Peak: 4.704 mb
Memory Usage: 3.034 mb
Execution Time: 0.497089 sec
-->
<!--
Cache Get: Mon, 30 Jan 2012 09:51:16 +0000
Memory Real: 0.75 mb
Memory Peak: 0.558 mb
Memory Usage: 0.399 mb
Execution Time: 0.003037 sec
-->
Как видиш 0.497089 без кеша... я боюсь даже представить что будет на твоём хостинге при аналогичном поиске.

Хостинг бесплатный и поэтому иногда притормаживает на генерации страницы без кеша, но в целом такого безобразия как у тебя - нет.

Я не знаю где вы находите тормознутые хостинги...

Оптимизировать ради оптимизации, не понимая что именно тормозит - глупое занятие...

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

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.