Modülleri devre dışı bırakmak - performans iyileştirme?


27

Bu soru 2 bölümden oluşmaktadır:

  1. Çekirdek modülleri devre dışı bırakmak, mağazanın genel performansını iyileştirir mi ve eğer öyleyse, bu performans geliştirmenin görülmesi için yöneticide devre dışı bırakılması (yani, ön uç çıktısını devre dışı bırakması) veya config.xml aracılığıyla devre dışı bırakılması gerekir.

  2. Bir stokta hangi modüllerin stoklanabileceği, CE 1.7.0.2 yapısının, Bölüm 1'de verilen yöntemle güvenli bir şekilde devre dışı bırakılabileceği bir performans artışı elde edilirse.

Yanıtlar:


27
  1. Evet öyle. Öncelikle, daha az modül, yükleme ve işleme için (potansiyel olarak) daha az kod demektir. Bunun yanında, örneğin Mage_Rss modülü gibi birçok modül arka planda belirli olaylarda reindex'leri zorlamak gibi birçok kod çalıştırır.

    Kullanılacak en iyi yöntemde: bir modülün System > Configuration > Advancedsadece devre dışı bırakılması, bir modülün çıkışını bastırırken, o modülün dükkandaki kodunu da içerir. Modül işlevselliği istemiyorsanız kullanışlıdır, ancak bunun için Modellere veya Bloklara ihtiyacınız vardır, çünkü diğer (3. parti) uzantılar buna bağlıdır. Kullanmasını devre dışı bırakmak, onu app/etc/modules/*.xmlkurulumdan tamamen kaldıracak, bu nedenle performans açısından en iyi seçenek bu olacaktır.

  2. Aşağıdaki uzantıyı genellikle XMl ile devre dışı bırakırım.

    • Mage_Rss
    • Mage_PayPalUk
    • Mage_Tag (bir projede kullanılmadığında)
    • Mage_Poll (zaten anketleri kullananlar için neden)
    • Phoenix_Moneybookers
    • Mage_Sendfriend
    • Mage_Rating (bir projede kullanılmadığında)
    • Mage_Bundle (müşteri tarafından istenmezse tekrar)
    • Mage_Downloadable (yukarıya bakın)

    ve üzeri olan arka uç olanlar can sıkıcı pop-up bastırır.System > Congiguration > AdvancedMage_Adminnotification

    Muhtemelen ne kullandığınıza veya kullanmadığınıza bağlı olarak birkaç çekirdek uzantıyı devre dışı bırakabilirsiniz. Magento’nun kararlılığından ödün vermediğinizden emin olun. Bu biraz deneme yanılma alacağını düşünüyorum.


1
Çekirdek xml dosyalarını değiştirmeden onları devre dışı bırakmak için bir yolu var mı?
Marty Wallace

1
Eğer zaten kendi XML dosyasına sahip değilse, devam edip oluşturabilirsiniz, sadece app/etc/module/Mage_Rss.xmlörnek oluşturun ve sadece codePool (core) ve active (false) etiketini eklediğinizden emin olun
Sander Mangel

Belki o zaman işleri karıştırabilirim :). Mage_Centinel'i, örneğin Mage_Centinel.xml dosyasını değiştirmeden etkisiz hale getirebileceğimi söylemek istiyorum. Bu şekilde temel kodu değiştirmezdim
Marty Wallace

Ahhh tamam, yanlış anladım. peki muhtemelen tüm XML dosyaları bir birime birleştirildiği için bunu devre dışı bırakabilirsiniz, bu yüzden onu config.xml etiketine eklerseniz, onu almak gerekir ama bence dizinden yapmak daha 'temizleyici' app/etc/modules. Ama bu sadece bana :)
Sander Mangel

2
Anketleri devre dışı bırakmadan önce, örnek anketi silmeyi unutmayın "Renkleri seç"; Modül devre dışı bırakılsa bile anket içeriği gösterebilen üçüncü taraf modülleri buldum.
lrkwz

14

Cevapla geç kalmama rağmen soruyu cevaplamak istiyorum

  1. Dosyaları fiziksel olarak kaldırırsanız daha da fazla performans elde edersiniz.
  2. Sadece; hepsi hariç Mage_Core;-)

Ancak sıkı çift modülleri devre dışı bırakmak için hiçbir şeyin kırılmamasına özen gösteren başka bir modül yüklemeniz gerekir. Bu nedenle geliştirdim: https://github.com/Zookal/magento-mock

Zookal Mock: Devre dışı bırakılmış çekirdek modüllerin ve uzantıların şeffaf şekilde otomatik algılanması ve Magento'yu kırmamak için sahte nesneler sağlaması. Yapılandırılacak bir şey yok. Sınıf yeniden yazılmaz. Sadece bir gözlemci. Kutunun dışında çalışır. Hatta dosyaları bile fiziksel olarak kaldırabilirsiniz!

Örneğin ne zaman devre dışı Mage_Wishlistveya Mage_Newslettersizin arka uç -> Müşteri -> Müşteri düzenlemek garip hata verir. Bu nedenle Mock eklentisini kullanın!

sales_flat_order_paymentTabloda girişleri olan eski Ödeme modüllerini bile kaldırabilir ve normalde Arka Uç -> Satış -> Sipariş Görünümü'nü kırabilir ancak Mock eklentisinin sizin için şeffaf bir çalışması olabilir.

Dikkate alınması gereken bir şey: Komut satırında çalışmıyor.


10

Modülleri devre dışı bırakmanın basit ve hızlı bir XML yoluyla ilgili Marius'un cevabına bakınız . zzz_Disabled_Modules.xmlİçeriği olan tek bir dosya oluşturun

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

Hayal etmek! Magento modülleri için bir .gitignore!

Bu sayede hangi modülleri etkinleştirdiğinizi / devre dışı bıraktığınızı kolayca görebilirsiniz.


2

@Sander Mangel’in dediği gibi, modülleri meydan okurcasına devre dışı bırakmak, gerçekten devre dışı bıraktığınız şey bir mağazadan mağazaya olmasına rağmen, büyük bir performans kazancı sağlayabilir. İhtiyacınız olmayan normalde bol miktarda var. Whishlist'i kullanmıyorsanız devre dışı bırakmak Mage_Wishlistoldukça fark yaratır.

Başka bir kazanç da devre dışı bırakma Mage_Log. Bu olsa local.xml aracılığıyla daha iyi yapılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.