Recentemente, comecei a desenvolver novas extensões ou personalizações no magento2, e minha primeira impressão foi um pesadelo. Eu tenho que esperar cerca de 20 a 30 anos para cada mudança que eu fizer? mesmo?
Estou falando do modo de desenvolvimento , sei que na produção com cache ativado e outras coisas, o site pode ser tranquilo. Mas quando estou trabalhando com um problema de extensão ou layout, preciso remover arquivos estáticos, limpar o cache etc.
Minha pergunta é: como todos os desenvolvedores M2 trabalham? porque eu não acredito que você precise esperar entre 20 e 30 anos para atualizar a página ...
Meu ambiente: Meu pc é "bom" i5 com 8gb de RAM. Preciso trabalhar com o Windows para usar o vagrant:
- Uso de todos os CPU de 4 núcleos
- Use 5120MB de RAM
- Ubuntu / trusty64 - Ubuntu 14.04
- Versão do PHP 7.0.12-1 + deb.sury.org ~ trusty + 1
- MariaDB - 10.1.18-MariaDB-1 ~ confiável
- Magento 2.1.2 é instalado apenas com dados de amostra (não há mais módulos instalados)
- (Pergunte-me se você quer saber mais)
O que está acontecendo exatamente? Normalmente, o M2 responde bem, devagar, mas tudo bem, cerca de 5 a 10s para carregar as páginas, mas às vezes (mais do que às vezes), ele fica preso para sempre! às vezes é a primeira página e às vezes os arquivos css, js, html, mas sempre o problema é com TTFB.
Também vi um problema no assistente de configuração ... com angular.js, esses arquivos duram para sempre ...
Estas duas imagens são sobre a navegação no assistente de configuração.
Em seguida, outro navegando no catálogo de front-end:
O que estou perguntando exatamente? Isso é normal? vocês trabalham com esse tempo? Comentei isso com alguns colegas e simplesmente não acreditamos, tenho que estar trabalhando assim? Às vezes me desespero de esperar o tempo todo assistindo a tela ...
Se alguém me pede para lhe mostrar um teste, como criar um novo produto ou algo parecido, ele apenas enlouquece ... Criar um novo pedido, preencher os campos e cada campo executa um js que dura de 5 a 6s ...
Eu não sei, mas me sinto tão mal por desenvolver essas coisas ...
fonte
Respostas:
Eu tentei de tudo e a única coisa que funciona é a máquina virtual que fornece bitnami. https://bitnami.com/stack/magento/virtual-machine
Sério, eu não sei o que tem essa vm, mas vai muito rápido. Tentei criar minha VM usando uma nova instalação do Ubuntu, CentOS, etc. Mas não funciona tão bem como esta VM.
fonte
desative a mesclagem e minificação de CSS / JS:
Consulte também este guia sobre como melhorar o desempenho do Magento 2.
fonte
Descobri que o modo de desenvolvedor desabilita tudo - que foi um exagero. Há certos aspectos que desejo armazenar em cache, como tradução. Felizmente,
env.php
você ainda pode definir quais caches usar especificamente:Foi o que eu escolhi para armazenar em cache durante o desenvolvimento no Google Checkout, pois esse era um front-end fortemente. Eu escolhi não armazenar em cache o Layout; Blocos e Página inteira para ver minhas alterações.
fonte
Sugestões de Magento postadas após esta pergunta ser respondida. Lendo outras respostas, acho que essas informações podem ser uma adição útil
http://devdocs.magento.com/guides/v2.2/extension-dev-guide/build/optimal-dev-environment.html
Configuração ideal
A seguir, é apresentada uma lista de otimizações que você pode fazer em sua máquina de desenvolvimento local
fonte
Ligue o seu cache.
Vá para
<your magento 2 directory>/bin
e execute este comandomagento cache:enable
.Limpe o cache ao editar o frontend para ver o que você editou.
Vá para
<your magento 2 directory>/bin
e execute este comandomagento cache:clean
.Minha referência
Também sou novo no magento 2. Espero que alguém tenha uma maneira de acelerar o magento 2 mesmo quando o cache estiver desativado.
fonte
Minha instalação no Ubuntu 16.10 para desenvolvimento de front-end para edições LESS :
Defina o modo Desenvolvedor:
php bin/magento deploy:mode:set developer
Ative todos os caches:
php bin / magento c: ativar
Fluxo de trabalho de desenvolvimento fronteado definido para compilação do lado do servidor
Após qualquer alteração em menos arquivos, execute
grunhido limpo
(Última vez em que eu começo - assista com uma navegação ao vivo e é ótimo)
fonte
Só quero compartilhar minha experiência pessoal. A solução que eu vim foi instalar o Xampp com a versão 7.0 do php, pois o Magento não é totalmente compatível com a versão superior do Php. Tentei Bitnami Image listado na resposta, mas não funcionou como eu esperava Xampp 7.0.23 Download Link
fonte
Aumentar o PHP
memory_limit
no arquivo php.ini fará uma boa diferença. No entanto, não o tornará muito suave (embora economize tempo).O valor padrão é 512M. Na minha máquina local, defino isso em "-1" (ilimitado) e isso proporciona um melhor tempo de carregamento.
O valor recomendado é memory_limit = 2G mencionado aqui .
O Magento é pesado e precisa de hardware de alto desempenho como o SSD para ser suave :(
fonte
memory_limit
não tem relação alguma com o desempenho. É óbvio pelo nome da diretiva.Se você estiver com problemas para configurar uma caixa do Vagrant, certamente será como as suas pastas serão compartilhadas. Eles devem ser compartilhados pelo NFS.
Depois de mexer com muitas caixas diferentes, percebi que, embora tivesse definido o NFS na configuração, ele não estava realmente funcionando e o sistema de compartilhamento padrão do VirtualBox estava assumindo o controle.
Voltei ao básico e configurei uma caixa LEMP simples e instalei este plugin:
https://github.com/Learnosity/vagrant-nfs_guest
O NFS confirmado estava funcionando e tudo estava bem.
fonte
Coisas que podem tornar sua configuração do Magento 2 rápida no servidor local ou em geral em qualquer ambiente de servidor.
Agora, quando estiver no ambiente de desenvolvimento, limpe apenas o cache necessário em vez de liberar todo o cache para impedir a reconstrução completa do cache.
fonte
A principal razão pela qual o magento2 é lento no modo desenvolvedor está relacionado a milhares de arquivos estáticos e compilados gerados em tempo real.
Existem 3 soluções para isso:
Monte o diretório inteiro com o NFS (o SSD ainda é obrigatório).
Monte apenas o diretório do aplicativo (seja qual for o seu hardware, ele funcionará bem), mas você perderá o acesso ao diretório / vendor na sua máquina host.
Monte o projeto inteiro com o rsync e exclua os diretórios onde os arquivos são gerados (pub / estático, gerado / código etc ...).
Eu fiz esse trabalho, tente: https://github.com/zepgram/magento2-fast-vm/
fonte