禁用模块-性能提高了吗?


27

这个问题分为2部分:

  1. 禁用核心模块是否会提高存储的整体性能,如果是,是否需要在admin中禁用(即禁用前端输出)还是通过config.xml禁用才能看到此性能提升。

  2. 如果要提高性能,则可以通过第1部分中回答的方法安全地禁用CE 1.7.0.2构建中的哪些模块。

Answers:


27
  1. 是的,它确实。首先,更少的模块意味着更少的代码(潜在地)加载和处理。紧接着,许多模块(例如,Mage_Rss模块)在后台运行大量代码,例如在某些事件上强制重新索引。

    关于最佳使用方法:禁用模块System > Configuration > Advanced仅使用抑制模块的输出,同时仍在商店中包含该模块的代码。当您不希望使用模块功能而需要使用模型或模块时,这非常方便,例如,因为其他(第3方)扩展依赖于此。禁用它app/etc/modules/*.xml会完全将其从安装中删除,因此从性能角度考虑,这是最佳选择。

  2. 我通常通过XMl禁用以下扩展名

    • 法师
    • Mage_PayPalUk
    • Mage_Tag(在项目中不使用时)
    • Mage_Poll(仍然使用民意调查的原因)
    • Phoenix_Moneybookers
    • Mage_Sendfriend
    • Mage_Rating(在项目中不使用时)
    • Mage_Bundle(同样,如果客户不需要)
    • Mage_Downloadable(见上文)

    并通过System > Congiguration > AdvancedMage_Adminnotification其抑制在后端那些烦人的弹出窗口。

    您可能会根据使用或不使用的功能禁用其他几个核心扩展。只要确保您不损害Magento的稳定性即可。我想这将需要一些反复试验。


1
有没有办法在不更改核心xml文件的情况下禁用它们?
马蒂·华莱士

1
如果它还没有它自己的XML文件,则可以继续创建它,app/etc/module/Mage_Rss.xml例如,创建并确保添加了codePool(core)和active(false)标签
Sander Mangel

那时我可能会把事情弄糊涂了。我的意思是说例如可以禁用Mage_Centinel,而不修改Mage_Centinel.xml,即使用我自己的xml文件禁用它。这样,我就不会更改核心代码
Marty Wallace 2013年

嗯,好吧,我误会了。好吧,您可能可以禁用它,因为所有XML文件都合并到一个文件中了,因此,如果将其添加到扩展名config.xml标记中,它应该会被拾取,但我认为从app/etc/modules目录执行此操作比较“干净” 。但这就是我:)
桑德·曼格尔

2
在禁用民意测验之前,请记住删除样本民意测验“选择颜色”;我发现第三方模块即使禁用了该模块也可以显示民意调查内容。
lrkwz 2015年

14

尽管回答迟到,我还是想回答这个问题

  1. 如果您物理删除文件,则可以获得更高的性能。
  2. 只是所有这些,除了Mage_Core;-)

但是要禁用紧密耦合模块,您需要安装另一个模块,该模块应确保不会损坏任何模块。因此,我开发了:https : //github.com/Zookal/magento-mock

Zookal Mock:透明地自动检测禁用的核心模块和扩展,并提供模拟对象,以免破坏Magento。无需配置。没有类重写。只有一位观察员。开箱即用。您甚至可以物理删除文件!

当您禁用如Mage_WishlistMage_Newsletter你的后端- >客户- >客户编辑将抛出奇怪的错误。因此,使用模拟扩展!

您甚至可以卸载旧的付款模块,这些模块在sales_flat_order_payment表中有条目,并且通常会中断您的后端->销售->订单视图,但是Mock扩展为您提供了透明的解决方法。

要考虑的一件事:它在命令行上不起作用。


10

有关禁用模块的简单快速的XML方式,请参见Marius的答案zzz_Disabled_Modules.xml使用内容创建一个文件

<?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>

想像!Magento模块的.gitignore!

借助此功能,您可以一目了然地查看已启用/禁用的模块。


2

正如@Sander Mangel所说,严格禁用模块可以大大提高性能,尽管您禁用的实际上是逐个存储的事情。通常,您不需要很多东西。如果您不使用心愿单,则禁用Mage_Wishlist将大有不同。

另一个好处是禁用Mage_Log。不过,最好通过local.xml完成​​。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.