Как сделать разработку сайтов Magento 2 быстрой?

18

Я отключил все кэши и установил режим развертывания для разработки. Так что мои сайты разработки Magento 2 на всех машинах очень медленные по сравнению с сайтами Magento 1.x.

Это нормально для Magento 2?

Какие конфигурации сервера и Magento мы должны использовать для сайтов разработки Magento 2, чтобы он имел максимальную скорость?

Обновить:

На Mac для локальной разработки я смог ускорить сайт, отключив opcache, поскольку возникла проблема с конфигурацией.

codelogn
источник
Установите Redis для замены файлового кэша. И использовать memcache для сессий php. Включите кеш и отключите разделы кеша, которые вы не хотите включать при работе над определенной задачей. Если вы разрабатываете только тему, используйте grunt watch и включите весь кеш. Как настроить находится в magento 2 официальной документации.
неясен
Redis бесполезен, если у вас нет более 100 000 товаров
Claudiu Creanga
Я также страдаю от медленной разработки на локальном оконном ПК. Судя по твоему опыту, мне лучше начать локальную разработку в Ubuntu или Linux Mint? а какую конфигурацию вы рекомендуете?
Джай

Ответы:

12

Вы можете использовать этот бродячий ящик https://github.com/EcomDev/fast-hypernode .

Я использую это, и это довольно быстро. В режиме разработчика с отключенным кешем и xdebug обновление страницы занимает около 2-3 секунд.

Или вы можете использовать ящик для бродяги, предоставленный magestead: http://www.magestead.com/

  • используйте php7.
  • используйте gulp для генерации css и js (быстрее, чем grunt). Вы можете попробовать уже созданную конфигурацию с помощью Snowdog (готово через 2 минуты): https://github.com/SnowdogApps/magento2-frontools
  • используйте 3 ГБ оперативной памяти, если делаете тестирование.
  • отключите только тот кеш, который вам нужен . Если вы делаете интерфейс, вам не нужно отключать кеш.
  • используйте livereload или browsersync для разработки веб-интерфейса, чтобы вам не нужно было перезагружать страницы.

Понять, что делают команды magento и когда их запускать. Если вы много setup:static-content:deployбегаете, то сойдете с ума, увидев эти точки. Грунт или глоток не знают о @magento_import, поэтому, когда вы добавляете или удаляете файлы, вам нужно работать, dev:source-theme:deployчто намного быстрее, чем выше.

Что не улучшается:

Если у вас более 100 тыс. Продуктов, redis не имеет значения, так что не беспокойтесь ( http://www.developers-paradise.com/wp-content/uploads/2016/05/05-Yaroslav-Rogoza-Magento-2-performance- Сравнение в разных средах.pdf ).

В настоящее время из-за того, что magento2 использует requirejs (2 МБ js), http2 также не имеет значения.

Клаудиу Крянгэ
источник
Я также страдаю от медленной разработки на локальном оконном ПК. Судя по твоему опыту, мне лучше начать локальную разработку в Ubuntu или Linux Mint? а какую конфигурацию вы рекомендуете?
Джай
@ Джай, извини, у меня нет опыта работы с монетным двором. Я использую Mac и Ubuntu.
Клавдиу Крянгэ
Сэр ... Могу ли я ожидать хорошую скорость разработки magento 2 ... если я использую Vagrant в моем окне 7 (i5 + 12Gb Ram) или я должен пойти в Ubuntu с этой конфигурацией системы, потому что окно разочаровывает медленно в разработке
Jai
1
@Джей Окна в порядке. Вы должны стремиться к обновлению в течение 2-3 секунд в режиме разработчика с некоторыми из кэшей. проверьте, насколько быстро этот github.com/alankent/docker-gsd на вашем компьютере и стремитесь к этой скорости. для бродяги я рекомендую гиперузел packagist.org/packages/byteinternet/hypernode-vagrant
Крянгэ
Спасибо за ваше предложение. Я выполню вашу рекомендацию, и считаете ли вы, что magento-разработка может быть выполнена быстро в Ubuntu и Mac по сравнению с Windows?
Джай
7

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

Магазины> Конфигурация> Дополнительно> Разработчик> Рабочий процесс внешней разработки

Переключиться на клиентскую сторону без компиляции

bjornredemption
источник
Этот параметр, кажется, перешел в Magento 2.2. Какие-нибудь указатели на то, где найти это сейчас?
fritzmg
1
docs.magento.com/m2/ee/user_guide/system/… Я бы проверил, находится ли ваш сайт в режиме разработчика, так как его нет, если нет
bjornredemption
Да, это было не в режиме разработчика,
спасибо
0

Также убедитесь, что слияние JS / CSS отключено, когда в режиме разработчика это действительно снижает производительность, тестирование показывает, что скорости могут упасть с 20-30 секунд до 2-3 секунд.

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

Обновить

Кажется, это проблема, которая затрагивала меня в 2.1.7 до 2.1.9 и, похоже, была исправлена ​​в Magento 2.2.X

Харри
источник
эта информация кажется неверной. Скорость не должна падать при слиянии
ladle3000
@ ladle3000 Кроме того, вам не нужно объединяться и минимизироваться в процессе разработки, просто усложняет просмотр файлов, которые необходимо изменить для модификации CSS / JS.
Харри
Я вижу ваши очки. Я думаю, возможно, потому что я перешел непосредственно на 2.2, я никогда не сталкивался с этим. На какой версии вы?
ladle3000
Это может быть исправлено в 2.2.0, но это просто дополнительный шаг. Я пытался проверить это утро, но когда я включаю в режиме разработчика, он все еще отключен? Я на 2.2.3 сейчас
Харри
0

Отключите следующие кэши, чтобы вам не нужно было запускать команды CLI для очистки кэша.

CONFIG
LAYOUT_GENERAL_CACHE_TAG
BLOCK_HTML
FPC
Rupi
источник
0

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

Для этого есть 3 решения:

  • Смонтировать весь каталог с помощью NFS (SSD по-прежнему является обязательным).

  • Смонтируйте только каталог приложения (с любым оборудованием), но вы потеряете доступ к каталогу / vendor на вашем хост-компьютере.

  • Смонтируйте весь проект с помощью rsync и исключите каталоги, в которых сгенерированы файлы (pub / статические, сгенерированные / code и т. Д.).

Вы можете попробовать это здесь: https://github.com/zepgram/magento2-fast-vm/

Бенджамин Калеф
источник
0

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

opcache.validate_timestamps = On
Choussamaster
источник
0

Если вы работаете в Windows, попробуйте этот стек очень быстро: https://winnmp.wtriple.com/, используя nginx и php-fpm, и включите Zend Opcache.

А для кешей вы можете оставить их всех включенными, но используйте этот наблюдатель файлов, который автоматически сбрасывает только необходимые кеши: https://github.com/mage2tv/magento-cache-clean

Кевин Чавес
источник
-4

Чтобы увеличить скорость магазина Magento 2, выполните следующие действия:

  • Сначала убедитесь, что вы выполнили все системные и серверные требования.
  • Обновите Magento до последней версии.
  • Включил Лак Кеш
  • Включены плоские категории и продукты -Оптимизация изображений, Javascript и CSS
  • Настроить CDN
  • Всегда используйте расширения без ошибок и легкую тему.
Сайед Муниб Уль Хасан
источник