Wyłączanie modułów - poprawa wydajności?


27

To pytanie składa się z 2 części:

  1. Czy wyłączenie podstawowych modułów poprawia ogólną wydajność sklepu, a jeśli tak, to czy trzeba je wyłączyć w adminie (tj. Wyłączyć wyjście interfejsu użytkownika), czy wyłączyć poprzez config.xml, aby zobaczyć poprawę wydajności.

  2. Jeśli konieczne jest zwiększenie wydajności, które moduły w magazynie, kompilację CE 1.7.0.2 można bezpiecznie wyłączyć, metodą opisaną w części 1.

Odpowiedzi:


27
  1. Tak. Przede wszystkim mniej modułów oznacza mniej kodu do (potencjalnie) ładowania i przetwarzania. Oprócz tego wiele modułów, na przykład moduł Mage_Rss, uruchamia dużo kodu w tle, na przykład wymuszając ponowne indeksowanie niektórych zdarzeń.

    W metodzie najlepiej użyć: wyłączenie modułu przy użyciu System > Configuration > Advancedtylko pomija wyjście modułu, jednocześnie włączając kod tego modułu do sklepu. Jest to przydatne, gdy nie chcesz funkcji modułów, ale potrzebujesz jej na przykład modeli lub bloków, ponieważ inne rozszerzenia (innych firm) zależą od tego. Wyłączenie go za pomocą app/etc/modules/*.xmlspowoduje całkowite usunięcie go z instalacji, więc pod względem wydajności jest to najlepsza opcja.

  2. Zwykle wyłączam następujące rozszerzenie przez XMl

    • Mag_Rss
    • Mage_PayPalUk
    • Mag_tag (gdy nie jest używany w projekcie)
    • Mage_Poll (bo i tak kto korzysta z ankiet)
    • Phoenix_Moneybookers
    • Mag_Sendfriend
    • Ocena magów (gdy nie jest używana w projekcie)
    • Mage_Bundle (ponownie, jeśli nie jest wymagany przez klienta)
    • Mage_Downloadable (patrz wyżej)

    i poprzez który tłumi irytujące wyskakujące okienka te w backend.System > Congiguration > AdvancedMage_Adminnotification

    Prawdopodobnie możesz wyłączyć kilka podstawowych rozszerzeń w zależności od tego, czego używasz, czy nie. Tylko upewnij się, że nie zagrozisz stabilności Magento. Myślę, że zajmie to trochę prób i błędów.


1
Czy istnieje sposób, aby je wyłączyć bez zmiany podstawowych plików XML?
Marty Wallace

1
Jeśli nie ma jeszcze własnego pliku XML, możesz go utworzyć, po prostu stwórz app/etc/module/Mage_Rss.xmlna przykład i upewnij się, że dodajesz kod CodePool (rdzeń) i aktywny (fałszywy) tag
Sander Mangel

Może właśnie wtedy pomyliłem rzeczy :). Mam na myśli, że mogę na przykład wyłączyć Mage_Centinel bez zmiany Mage_Centinel.xml, tj. Użyć własnego pliku xml, aby go wyłączyć. W ten sposób nie zmieniłbym podstawowego kodu
Marty Wallace

Ach, okej, źle zrozumiałem. cóż, prawdopodobnie możesz to wyłączyć, ponieważ wszystkie pliki XML są scalone w jeden, więc jeśli dodasz go w swoim rozszerzeniu znacznik config.xml, powinien zostać podniesiony, ale moim zdaniem „czystsze” jest zrobienie tego z app/etc/moduleskatalogu. Ale to tylko ja :)
Sander Mangel

2
Przed wyłączeniem ankiet pamiętaj o usunięciu przykładowej ankiety „Wybierz kolory”; Znalazłem moduły innych firm, które mogą wyświetlać zawartość ankiety, nawet jeśli moduł jest wyłączony.
lrkwz

14

Mimo spóźnienia z odpowiedzią chciałbym odpowiedzieć na pytanie

  1. Zyskujesz jeszcze większą wydajność, jeśli fizycznie usuniesz pliki.
  2. Po prostu wszystkie z wyjątkiem Mage_Core;-)

Ale aby wyłączyć ciasne pary modułów, musisz zainstalować inny moduł, który dba o to, aby nic się nie zepsuło. Dlatego opracowałem: https://github.com/Zookal/magento-mock

Zookal Mock: Przezroczyste automatyczne wykrywanie wyłączonych modułów rdzenia i rozszerzeń oraz zapewnianie fałszywych obiektów, które nie łamią Magento. Nic do skonfigurowania. Brak przepisywania klas. Tylko jeden obserwator. Działa po wyjęciu z pudełka. Możesz nawet fizycznie usunąć pliki!

Np. Kiedy wyłączysz Mage_Wishlistlub Mage_NewsletterTwój Backend -> Klient -> Edycja klienta będzie generował dziwne błędy. Dlatego użyj rozszerzenia Mock!

Możesz nawet odinstalować stare moduły płatności, które mają wpisy w sales_flat_order_paymenttabeli i zwykle psują Twój Backend -> Sprzedaż -> Widok zamówienia, ale fałszywe rozszerzenie ma dla Ciebie przezroczyste rozwiązanie.

Jedną rzecz do rozważenia: nie działa w wierszu poleceń.


10

Zobacz odpowiedź Mariusa na temat prostego i szybkiego sposobu wyłączania modułów XML. Utwórz pojedynczy plik zzz_Disabled_Modules.xmlz zawartością

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

Wyobrażać sobie! .Gitignore dla modułów Magento!

Dzięki temu możesz łatwo sprawdzić, które moduły zostały włączone / wyłączone na pierwszy rzut oka.


2

Jak twierdzi @Sander Mangel, wyzywające wyłączanie modułów może znacznie zwiększyć wydajność, chociaż tak naprawdę to, co wyłączasz, jest rzeczą zależną od sklepu. Zwykle jest wiele rzeczy, których nie potrzebujesz. Jeśli nie używasz whishlist, wyłączanie Mage_Wishlistrobi dużą różnicę.

Kolejnym zyskiem jest wyłączenie Mage_Log. Można to jednak zrobić lepiej za pośrednictwem pliku local.xml.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.