Desativando módulos - melhoria de desempenho?

27

Esta pergunta tem 2 partes:

  1. A desativação dos módulos principais melhora o desempenho geral da loja e, se for o caso, eles precisam ser desabilitados no administrador (ou seja, desabilitar a saída do frontend) ou desabilitados via config.xml para que essa melhoria de desempenho seja vista.

  2. Se houver uma melhoria de desempenho a ser obtida, quais módulos em um estoque, a compilação CE 1.7.0.2 pode ser desativada com segurança, por meio do método respondido na parte 1.

Marty Wallace
fonte

Respostas:

27
  1. Sim. Antes de tudo, menos módulos significa menos código para (potencialmente) carregar e processar. Além disso, muitos módulos, como o módulo Mage_Rss, executam muito código em segundo plano, como forçar reindexos em determinados eventos.

    Sobre o melhor método a ser usado: desativar um módulo usando System > Configuration > Advancedapenas suprime a saída de um módulo enquanto ainda inclui o código desse módulo na loja. Isso é útil quando você não deseja uma funcionalidade de módulos, mas precisa de modelos ou blocos, por exemplo, porque outras extensões (de terceiros) dependem disso. Desativá-lo usando app/etc/modules/*.xmlo removerá completamente da instalação, portanto, em termos de desempenho, essa é a melhor opção.

  2. Normalmente desabilito a seguinte extensão via XMl

    • Mage_Rss
    • Mage_PayPalUk
    • Mage_Tag (quando não usado em um projeto)
    • Mage_Poll (causa quem usa pesquisas de qualquer maneira)
    • Phoenix_Moneybookers
    • Mage_Sendfriend
    • Mage_Rating (quando não usado em um projeto)
    • Mage_Bundle (novamente, se não for solicitado pelo cliente)
    • Mage_Downloadable (veja acima)

    e através System > Congiguration > Advanceddo Mage_Adminnotificationque suprime os pop-ups irritantes no back-end.

    Provavelmente, você pode desativar várias outras extensões principais, dependendo do que está usando ou não. Apenas certifique-se de não comprometer a estabilidade do Magento. Eu acho que isso vai levar algumas tentativas e erros.

Sander Mangel
fonte
11
Existe uma maneira de desativá-los sem alterar os arquivos xml principais?
Marty Wallace
11
If it doesn't already have it's own XML file you can go ahead and create it, just create app/etc/module/Mage_Rss.xml for example and just be sure you add the codePool (core) and active (false) tag
Sander Mangel
Talvez eu tenha confundido as coisas naquele momento :). Quero dizer que posso desativar o Mage_Centinel, por exemplo, sem alterar o Mage_Centinel.xml, ou seja, usar meu próprio arquivo xml para desativá-lo. Dessa forma, eu não seria alterar o código do núcleo
Marty Wallace
Ahhh ok, eu entendi errado. bem, você provavelmente pode desativá-lo, já que todos os arquivos XML são mesclados em um, por isso, se você o adicionar na tag config.xml de suas extensões, ele deverá ser recuperado, mas na minha opinião é mais "limpo" fazê-lo no app/etc/modulesdiretório Mas isso é apenas me :)
Sander Mangel
2
Antes de desativar as pesquisas, lembre-se de excluir a pesquisa de amostra "Escolha cores"; Encontrei módulos de terceiros que podem mostrar o conteúdo da pesquisa mesmo se o módulo estiver desativado.
Lrkwz 29/09/2015
14

Apesar de estar atrasado com uma resposta, gostaria de responder à pergunta

  1. Você ganha ainda mais desempenho se remover fisicamente os arquivos.
  2. Simplesmente todos eles, exceto Mage_Core;-)

Mas, para desativar alguns módulos apertados, é necessário instalar outro módulo, para que nada se rompa. Portanto, eu desenvolvi: https://github.com/Zookal/magento-mock

Zookal Mock: detecção automática transparente de módulos e extensões desativados e fornecendo objetos simulados para não quebrar o Magento. Nada para configurar. Nenhuma classe reescreve. Apenas um observador. Trabalha fora da caixa. Você pode até remover fisicamente os arquivos!

Por exemplo, quando você desabilita Mage_Wishlistou Mage_Newslettero Backend -> Cliente -> Edição do cliente gera erros estranhos. Portanto, use a extensão Mock!

Você pode até desinstalar módulos antigos de pagamento que possuem entradas na sales_flat_order_paymenttabela e normalmente interrompem o seu back-end -> vendas -> exibição de pedidos, mas a extensão Mock tem uma solução transparente para você.

Uma coisa a considerar: ele não funciona na linha de comando.

Cyrill
fonte
10

Veja a resposta de Marius sobre uma maneira XML simples e rápida de desativar módulos. Crie um único arquivo zzz_Disabled_Modules.xmlcom o conteúdo

<?xml version="1.0"?> 
<config>
    <modules>
        <Mage_Rss>
            <active>false</active>
        </Mage_Rss>
        <Mage_PaypalUk>
           <active>false</active>
        </Mage_PaypalUk>
        <Phoenix_Moneybookers>
            <active>false</active>
        </Phoenix_Moneybookers>
        <!-- all other modules here -->
    </modules>
</config>

Imagine! Um .gitignore para módulos Magento!

Com isso, você pode ver facilmente quais módulos você ativou / desativou rapidamente.

tzvi
fonte
2

Como o @Sander Mangel diz, desativar os módulos de maneira desafiadora pode ter um grande ganho de desempenho, embora o que você desabilite seja realmente uma coisa loja por loja. Normalmente, há muitas coisas que você não precisa. Se você não estiver usando a desabilitação da lista de permissões, Mage_Wishlistfaz muita diferença.

Outro ganho é desabilitante Mage_Log. Isso pode ser melhor feito através do local.xml.

user3412
fonte