Quando devo usar o Magento Compiler

44

Costumo ver as pessoas mencionarem que usam o recurso de compilador do Magento.

Eu nunca me pergunto: em quais casos você deve usá-lo e quanto ganho de desempenho você tem então.

[AVISO LEGAL]: Como recebi uma sugestão de edição sobre isso recentemente. Esta questão não é sobre a di-compilação do magento2, nem mesmo um pouco sobre o magento2.

Flyingmana
fonte
1
Veja meus benchmarks com o compilador: byte.nl/blog/should-i-use-the-magento-compiler
Willem
1
sua configuração do apc está ausente, agora também temos o módulo opcache nas versões atuais e não há versão php suportada que funcione mais com o apc. Alterações de software, soluções e soluções alternativas.
precisa saber é o seguinte

Respostas:

43

[AVISO LEGAL] Esta resposta é apenas para o compilador no Magento 1, o compilador no Magento 2 tem uma finalidade / efeito completamente diferente

Você nunca deve usá-lo.

Porque o PHP desenvolveu várias mecânicas para melhorar aplicativos que contêm muitos arquivos.

Significa: o php opCache na versão atual do php oferece melhores melhorias de desempenho, se configurado corretamente. Por exemplo, para usar um limite alto o suficiente para arquivos em cache. Além disso, o opCache possui melhorias nas funções de acesso ao sistema de arquivos que funcionam em um nível mais profundo que o aoe_classpathcache e melhoram ainda mais o desempenho.

No final, temos um carregamento automático que não precisa mais do que alguns ms sem o compilador. Existem até casos em que o compilador prejudicou o desempenho. Sem mencionar os problemas loucos que consomem tempo para depurar aplicativos usando o compilador.

Além disso, o opCache não melhora apenas o carregamento automático, as otimizações da função do sistema de arquivos ainda melhoram o carregamento de arquivos de modelo e layout.

http://php.net/manual/en/opcache.configuration.php

Flyingmana
fonte
2
Então, você sugere desativar a compilação, limpar os arquivos compilados e usar o opCache?
perissf
1
se você resumir, sim
Flyingmana
3
O compilador é um kludge mais útil nas versões 1.4.1.1, 1.4.2.0 e possivelmente 1.5.1.0. A partir do 1.5.1.0, a otimização do código começou a torná-lo menos eficaz. Em algum momento em torno de 1.6 ou 1.7, alguém fez testes A / B e descobriu que ele pode realmente atrasar o sistema em determinadas configurações de servidor.
Fiasco Labs
3
Duas configurações para o intérprete PHP para ajudar com os bilhões de arquivos que podem ser feitos se você tiver acesso ao sistema ou conseguir que seu provedor de hospedagem faça a alteração para você -> realpath_cache_size=64ke realpath_cache_ttl=3600. 64k parece ser o ponto ideal, as pessoas recomendaram mais, mas os testes de desempenho mostram que é um desperdício de memória.
Fiasco Labs
2
@FiascoLabs Você tem um link / fonte para seus números de "testes A / B"? Seria bom ver.
Aram Papazian
11

"Quando devo usar o Magento Compiler"

Se, por algum motivo, seu sistema não tiver um acelerador PHP instalado (improvável, mas possível)

Se você está executando uma versão muito antiga do magento (você realmente não deveria estar)

Por que você deve mantê-lo desativado?

Concordo totalmente com o comentário do Fiasco Labs acima. Embora você não tenha fornecido o número da versão do magento, isso é válido para todas as versões do magento (CE) acima da 1.6.1, se você habilitar o compilador em um sistema que já possui um acelerador php (como PHP-APC etc.) em toda a sua loja , das páginas de administração até o check-out de um cliente, será mensuramente mais lento; pior ainda, muitos dos plugins / mods encontrados no magento connect não funcionarão corretamente com o compilador ativo.

Em resumo, em 2014 nunca há um bom motivo para ativar o compilador.

Alistair
fonte