Как стать автором
Обновить

Комментарии 14

Если для Enterprise версии выключить Mage_Log то сломается сравнение продуктов
Верстка у сайта адаптивная или отдельная версия для компа, для телефона. И как обстоят дела с оптимизацией картинок?
Вам не нужно загружать модель из catalog/product в каждом цикле foreach, поскольку переменная $_product уже определяет модель из catalog/product. Если набор товаров достаточно большой, у вас может быть много-много ненужных обращений.


Все зависит от потребностей, не все данные есть в колекции, а только те что находятся в product listing.
И иногда данных надо много, и не хочется добавлять их все в product listening.
если мало, то грузите продукты через коллекцию или сделайте свой блок, наследуйте существующий и оптимизируйте запрос.

«Нет оправдания для говнокодерства, кроме как лень и деньги» (с)

Спасибо большое.


Еще бы описание ускорения API :)

Я бы с удовольствием прочел такую же статью но для Мадженто 2.

На сколько мне известно, Мадженто 2 в 2 раза медленнее первой. Поэтому и 2))

Вот интересная статья — https://www.magecore.com/blog/developers-tips/php-7-affects-performance-magento-1-9-ce-vs-magento-2-0-ce
Эта оценка верна только для первого запроса к приложению — в Magento 2 из коробки есть Varnish (и он действительно работает), что де-факто делает систему более производительной в большинстве случаев чем Magento 1. А в production mode фронт Magento 2 работает весьма шустро, а если добавить возможность масштабирования чекаута в версии ЕЕ, то даже этот проблемный участок можно похвалить. На данный момент сравнение с веткой 2.0.х не корректно, потому что между 2.0 и 2.1 приличная пропасть, в последней 2.1 все гораздо лучше и быстрее.
Как-то вы запоздали с Magento 1 =)

С шаблонами понятно, за
<?php $_product = Mage::getModel('catalog/product')->load($_product->getId()) ?>
по рукам сразу нужно линейкой давать. load моделей в шаблонах это очень грязно.

Неплохо помогают еще:
  • хранение кеша в redis, а не в файлах
  • добавление в свои блоки cache tag и cache lifetime
  • fullpage кеш как модуль или в виде Varnish
  • переход на более новую версию PHP
  • включение PHP opcache или apc
  • аудит обсерверов на самые частые действия и сужение зоны их вызова (например, бывает, что обсервер стоит слишком рано и ловит много generic событий и фильтрует их уже в обработчике)
  • включение PHP opcache или apc
  • включение Merge JS/CSS
Google PageSpeed Insights Score = 100 это похоже на оптимизацию ради галочки и на мой взгляд жутко не профессионально. Любой внешний шрифт или скрипт и эта оценка уже 99.
Т.е. автор статьи предлагает отказаться от использования яндекс метрики, гугл аналитики и гугл шрифтов, а это все базовые рекомендации поисковиков.

Вместо встроенного профайлера удобней пользоваться aoe_profiler. Примера с загрузкой продукта внутри цикла прохода коллекции недостаточно, как правило одним этим дело никогда не ограничевается.
в догонку списку от vlfesko добавлю:
— minify JS/CSS
— анализ и оптимизация layouts.
— включение сжатия на стороне сервера (иногда отключено).

>> Magento работает медленно. Иногда очень медленно.

Если вы хотите рассказать о том, как ускорить систему, то было бы логично упомянуть про внутреннюю компиляцию классов и варианты кэширования.

Компиляция — это костыль, со своими проблемами.
Вот недавно нашел полезный проект https://github.com/Inchoo/Inchoo_PHP7. Говорят на PHP7 Magento 1.x может обрабатывать чуть ли не в 2 раза больше запросов.
В реальной жизни прирост получается около 20%, проверено примерно на 5 проектах — нигде в два раза лучше не стало. Всему виной кастомный код расширений, который сам по себе не очень эффективен — ну, знаете, где коллекцию фильтруют на стороне PHP, а не через фильтры SQL или делают лоад модельки в цикле. Может быть на чистой Magento и можно на определенных запросах получить буст в 100% скорости, но на рабочем непустом проекте — очень вряд ли, хотя надежда всегда есть =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий