Czy posiadanie większej liczby włączonych modułów spowalnia witrynę?

13

Czy posiadanie większej liczby włączonych modułów spowalnia witrynę?
Zainstalowałem 30 modułów dla mojej witryny i obawiam się, że będzie za wolno.

ciesz się życiem
źródło

Odpowiedzi:

11

Posiadanie większej liczby włączonych modułów spowalnia ładowanie Drupala, ponieważ więcej plików jest ładowanych i analizowanych. Poza tym posiadanie większej liczby włączonych modułów nie oznacza automatycznie posiadania wolniejszej witryny, ponieważ nie wszystkie moduły wykonują kod dla każdej żądanej strony.

Na przykład, jeśli zainstalowałeś Widoki i włączyłeś tylko widok strony głównej, Widoki nie zostaną wykonane, gdy żądana strona jest stroną węzła. Chociaż moduł Widoki implementuje się hook_menu_alter()i jest wykonywany, nawet jeśli nie włączono żadnego widoku, ale moduł Widoki jest włączony. Każda implementacja hook_menu_alter()jest wywoływana przy odbudowywaniu menu, co zwykle nie zdarza się przy każdym żądaniu strony.

kiamlaluno
źródło
6
Posiadanie wielu modułów, które nic nie robią, powoduje, że strona jest nieco wolniejsza. Ma to związek ze sposobem działania systemu haczyków; Drupal wykonuje wywołanie module_hook dla każdego zainstalowanego modułu za każdym razem, gdy uruchamiany jest hook. Wszystkie te kontrole mogą się sumować. Na naszej stronie moduł_hak jest wywoływany 13 000 razy, co zajęło 168 ms; każdy kawałek się sumuje.
mikeytown2,
15

Tak. Jednak 30 nie ma się czym martwić. Masz kłopoty, gdy przekroczysz 100;)

Zainstaluj pamięć podręczną kodu bajtowego (APC lub XCache), aby wyeliminować większość spowolnienia dołączania wielu plików i pamiętaj o okresowym usuwaniu nieużywanych modułów (zwykle każdy projekt gromadzi moduły, które w pewnym momencie są nieużywane)

Bojan Zivanovic
źródło
Widzę, że Commerce Kickstart używa 96 modułów contrib.
Pere
Zainstalowanie XCache sprawiło, że moje strony renderowały się w połowie czasu. Dzięki.
cherouvim
1

W uzupełnieniu obu odpowiedzi @Bojan Zivanovic i @kiamlaluno, które mają rację, należy dbać o interakcje modułów. Posiadanie wielu modułów zwiększa ryzyko złych interakcji między modułami (takich jak interakcje z lekami). Powiedziałbym, że posiadanie więcej niż 50 modułów staje się niebezpieczne i powinieneś wcześniej sprawdzić, czy nie używasz kilku modułów dla tych samych domen zadań.

Jako przykład budowanie stron z blokami, widokami, panelami, polami zawierającymi widoki, blokami zawierającymi widoki, blokami zawierającymi panele zawierające widoki zawierające ... Chodzi o to, aby uzyskać coś, co normalny mózg może zrozumieć (jak składają się moje różne strony) . Może to mieć duży wpływ na wydajność, gdy kilka złożonych zachowań związanych z ładowaniem jest ukrytych i powiązanych. Innym przykładem jest dodanie kilku reguł ACL z kilku modułów dla każdej zawartości.

Jeśli obawiasz się wydajności, zawsze używaj modułów profilujących i śledź różnice po każdym dodaniu nowego modułu. Czasami mały haczyk z częścią SQL lub niestandardowym szablonem pozwoli zaoszczędzić czas generowania witryny.

regilero
źródło
Czy Drupal jest stworzony dla „normalnego mózgu”? :)
pico34
1

trzy rzeczy, o których należy pamiętać podczas budowania witryny, które mogą przyspieszyć twoją witrynę drupal:

  1. Zmniejsz liczbę modułów
  2. Sprawdź dziennik zapytań mySQL pod kątem wolnych zapytań i popraw kod / dodaj indeksy, jeśli to konieczne.
  3. Buforowanie (i mam nadzieję, że większość użytkowników nie jest uwierzytelniona)

a jeśli chodzi o część modułu, to oczywiście większa liczba modułów będzie wolniejsza, ponieważ będą one wymagały większej pamięci RAM do przetworzenia.

wciąż 30 do 60 modułów nie wpłynie tak bardzo na twoją stronę.

stosunek czasu ładowania strony i liczby modułów wynosi 100 modułów, opóźniając stronę o 350 ms do 650 ms.

mam nadzieję, że na następnej stronie będziesz pamiętać o tych punktach .. :)


źródło