Я выполнил бенчмаркинг по сценарию, который загружает все продукты из категории, route=product/category
. Я вставил несколько функций микропоры по всему сценарию и получил следующие результаты:Время загрузки страницы категории OpenCart
Array
(
[0] => 1386295629.1175
[1] => 1386295629.1556
[2] => 1386295629.1562
[3] => 1386295629.1562
[4] => 1386295629.4826
[5] => 1386295629.49
[6] => 1386295629.4908
[7] => 1386295629.491
)
От начала до конца, он принимает 0.3735 секунд для загрузки данных для всей страницы. Сюда входят все SQL-запросы и изменение размера изображения (при необходимости). Я побежал тест на этой странице:
http://www.hollywoodcollectibles.com/baseball/autographed-baseball-balls
Вы заметите, что он занимает более 10 секунд, чтобы загрузить эту страницу и большую часть этого времени используется на запросе и не ответ. Таким образом, узкое место на самом деле не в SQL. Большинство других категорий, которые содержат меньшее количество продуктов, вообще не испытывают этого узкого места.
я побежал другой тест, измерение этого времени, сколько времени требуется, чтобы сделать фактический вывод, $this->response->setOutput($this->render());
Array
(
[0] => 1386296946.8589
[1] => 1386296964.206
)
Теперь мы получаем где-то. Для получения результата Opencart занял 17,34 секунды.
После этого я потерян. Может ли кто-нибудь указать мне, где функция $this->render()
находится в Opencart, и, возможно, дать мне другие предложения о том, где искать узкое место?
Теперь удалите кеш-файлы и выполните бенчмаркинг ;-) Это не будет '0.3735' секунд ;-) Один вопрос, хотя: глядя на это большое количество категорий - ** Вы установили удаление * количества товаров категории * * расширение ** ?? Если нет, попробуйте один, а затем вернитесь с результатом ;-) – shadyyx
Да, есть vqmod, который удаляет счет категории. Я очищаю кеш религиозно, после любых небольших изменений, которые я вложил. –