Avere più moduli abilitati rende il sito più lento?


13

Avere più moduli abilitati rende il sito più lento?
Ho installato 30 moduli per il mio sito e temo che diventerà troppo lento.

Risposte:


11

Avere più moduli abilitati rende il bootstrap Drupal più lento, poiché vengono caricati e analizzati più file. A parte questo, avere più moduli abilitati non significa automaticamente avere un sito più lento, poiché non tutti i moduli eseguono il codice per ogni pagina richiesta.

Ad esempio, se hai installato Viste e hai abilitato solo la vista della prima pagina, le Viste non verranno eseguite quando la pagina richiesta è una pagina di nodo. Tuttavia, il modulo Views implementa hook_menu_alter()e ciò viene eseguito anche se non è stata abilitata alcuna vista, ma il modulo Views è abilitato. Qualsiasi implementazione di hook_menu_alter()viene invocata quando i menu vengono ricostruiti e ciò non avviene normalmente su ogni richiesta di pagina.


6
Avere molti moduli che non fanno "nulla" rende il sito leggermente più lento. Ha a che fare con il modo in cui funziona il sistema hook; Drupal effettua una chiamata module_hook per ogni modulo installato, ogni volta che viene eseguito un hook. Tutti questi controlli possono sommarsi. Sul nostro sito, module_hook viene chiamato 13.000 volte e ci sono voluti 168ms; ogni piccola somma.
mikeytown2,

15

Sì. Tuttavia, 30 non è nulla di cui preoccuparsi. Sei nei guai quando vai oltre i 100;)

Installa una cache bytecode (APC o XCache) per eliminare la maggior parte del rallentamento dell'inclusione di molti file e assicurati di rimuovere periodicamente i moduli inutilizzati (di solito ogni progetto raccoglie moduli che non vengono utilizzati ad un certo punto durante lo sviluppo)


Vedo che Commerce Kickstart utilizza 96 moduli contrib.
Pere,

L'installazione di XCache ha reso le mie pagine rese a metà tempo. Grazie.
Cherouvim,

1

A complemento di entrambe le risposte di @Bojan Zivanovic e @kiamlaluno, che sono giuste, dovresti preoccuparti delle interazioni del modulo. Avere molti moduli aumenta i rischi di interazioni tra moduli difettosi (come le interazioni farmacologiche). Direi che avere più di 50 moduli diventa pericoloso e che dovresti verificare in anticipo che non usi più moduli per gli stessi domini di attività.

Ad esempio, costruendo pagine con blocchi, viste, pannelli, campi contenenti viste, blocchi contenenti viste, blocchi contenenti pannelli contenenti viste contenenti ... L'idea è quella di ottenere qualcosa che un cervello normale possa capire (come sono composte le mie diverse pagine) . Ciò può avere un grande impatto sulle prestazioni quando diversi comportamenti di caricamento complessi sono nascosti e concatenati. Un altro esempio è l'aggiunta di diverse regole ACL da diversi moduli per ciascun contenuto.

Se temi per le prestazioni, usa sempre i moduli di profilazione e segui le differenze dopo ogni aggiunta di un nuovo modulo. A volte un piccolo gancio con un po 'di SQL all'interno o un modello personalizzato salverà la generazione di tempo del tuo sito Web.


Drupal è fatto per "cervello normale"? :)
pico34

1

tre cose da tenere a mente durante la costruzione del sito che possono velocizzare il tuo sito di Drupal sono:

  1. Ridurre il numero di moduli
  2. Controllare il registro delle query mySQL per query lente e modificare il codice / aggiungere indici, se necessario.
  3. Memorizzazione nella cache (e sperando che la maggior parte dei tuoi utenti non sia autenticata)

e per quanto riguarda la parte del modulo, ovviamente, un numero maggiore di moduli più lenti sarà la velocità, poiché richiedono una RAM più grande per l'elaborazione.

comunque il modulo da 30 a 60 non influenzerà molto il tuo sito.

la razione per il tempo di caricamento del sito e il numero di moduli è come 100 moduli che ritardano il sito di 350ms a 650ms.

spero per il tuo prossimo sito tieni a mente questi punti .. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.