Performance: Magento 1 vs. Magento 2 – Uma comparação injusta

Desde a primeira versão do Magento 2 venho testando cada novo release em busca de uma solução para a performance no ambiente de desenvolvimento.

Acostumado a trabalhar com Magento 1 na combinação MAMP (Mac + Apache + Mysql + PHP), com todos os caches desabilitados, tem sido frustrante trabalhar com Magento 2 devido sua baixíssima performance em ambiente de desenvolvimento.

No vídeo de hoje publicado no canal do Magenteiro no Youtube, eu traço uma comparação injusta entre a performance do Magento 1 e Magento 2.

Porque a comparação é injusta
Considero a comparação injusta, pois mesmo com toda a diferença de configurações o Magento 2 ainda se mostra muito distante em termos de performance. Veja a configuração usada:

Configuração utilizada

Em ambas as versões o XDebug e o modo desenvolvedor estão ativos.

Além disso, não usei nenhuma outra ferramenta avançada para pontuar minha análise, e sim, apenas os indicadores do navegador, que podem ser afetados por qualquer outro aplicativo, e não pode ser levado a sério.

Também não utilizei o Firefox, que é o navegador que sempre utilizei para desenvolver em Magento 1, mas praticamente trava minha máquina quando tento usá-lo no Magento 2 em algumas situações. Além disso, não encontrei ferramentas boas para lidar com KnockoutJS (biblioteca JS nativa no M2) no Firefox. Provavelmente terei que abandoná-lo em breve ou não usá-lo para desenvolvimento.

Por fim, todo o teste foi feito com o ambiente de desenvolvimento (modo desenvolvedor), e não o ambiente de produção. Lojas em produção com Magento 2, quando bem configuradas, tem se mostrado excelentes e em muitos casos melhores que lojas feitas na versão 1.x.

Ao configurar o Magento 2 para ambiente de produção, muitas outras coisas são armazenadas em cache, arquivos JavaScript e CSS são mesclados e minificados, classes e xml’s são mesclados, entre muitos outros fatores.

No entanto, enquanto a loja não vai ao ar, é no modo desenvolvimento que as coisas irão acontecer.

Resultados
Como podemos ver no vídeo (aos 13 minutos), a performance do Magento 2 em todas as requisições foi bem inferior a do Magento 1. Não apenas ligeiramente inferior, como a ponto de aborrecer qualquer desenvolvedor.

Razão e Soluções
O principal motivo apontado até o momento nas fontes pesquisadas seria o sistema de arquivos da Apple, que mesmo com as significativas mudanças implementadas na última versão (MacOs High Sierra), ainda não foram suficientes para lidar com o Magento 2.

A solução mais adotada até o momento para lidar com a situação por usuários não-linux é a utilização do Docker em conjunto com Unisson – um sincronizador de arquivos.

A ideia basicamente consiste em ter os arquivos do Magento dentro do ambiente Linux, usando o seu sistema de arquivos. Como sabemos, podemos mapear uma pasta local para ser usada no Docker. No entanto, esta abordagem não funciona para resolver o problema de performance do Magento 2. Mesmo na imagem oficial Docker da Magento, o Unisson se faz presente para sincronizar cada arquivo do seu disco local, com a imagem Linux que está utilizando.

No final da semana passada (mas depois de ter gravado este vídeo), eu e um colega de escritório conseguimos fazer o Magento 2 funcionar com Docker, Nginx, XDebug e Unisson. Os resultados parecem bem melhores do que os exibidos neste vídeo e espero em breve publicar uma segunda versão em breve com seus resultados.

Apesar de precisar de 20 Gb a mais para o Docker, e ter cada projeto duplicado em nosso disco, esta parece ser a solução oficial por um longo tempo e é com ela que teremos que nos adaptar. Você pode ver como configurar Docker com Magento neste outro post aqui do Magenteiro.

Se você conhece outra solução mais interessante não deixe de compartilhá-la.

Agora, se não quiser investir tanto tempo configurando seu ambiente de desenvolvimento para trabalhar pra valer com Magento 2, talvez um bom livro seja seu melhor companheiro entre um refresh e outro. ?

Espero em breve compartilhar tutoriais bem legais para trabalharmos sem demora com Magento 2.

Grande abraço e até a próxima.

Créditos Ricardo Martins
https://www.magenteiro.com/blog/magento-2

-->
WhatsApp chat