Le fait d'avoir plus de modules activés ralentit-il le site?


13

Le fait d'avoir plus de modules activés ralentit-il le site?
J'ai installé 30 modules pour mon site, et je crains que cela ne devienne trop lent.

Réponses:


11

Avoir plus de modules activés rend le démarrage de Drupal plus lent, car plus de fichiers sont chargés et analysés. En dehors de cela, avoir plus de modules activés ne signifie pas automatiquement avoir un site plus lent, car tous les modules n'exécutent pas de code pour chaque page demandée.

Par exemple, si vous avez installé des vues et que vous avez uniquement activé la vue de la première page, les vues ne seront pas exécutées lorsque la page demandée est une page de noeud. Bien que le module Vues implémente hook_menu_alter(), et cela est exécuté même si vous n'avez activé aucune vue, mais le module Vues est activé. Toute implémentation de hook_menu_alter()est invoquée lorsque les menus sont reconstruits, et cela ne se produit normalement pas à chaque demande de page.


6
Avoir beaucoup de modules qui ne font "rien" rend le site légèrement plus lent. Cela a à voir avec le fonctionnement du système de crochet; Drupal effectue un appel module_hook pour chaque module installé, chaque fois qu'un hook est exécuté. Tous ces contrôles peuvent s'additionner. Sur notre site, module_hook est appelé 13 000 fois et cela a pris 168 ms; chaque petit peu s'additionne.
mikeytown2

15

Oui. Cependant, 30 n'est rien à craindre. Vous avez des ennuis quand vous dépassez 100;)

Installez un cache de bytecode (APC ou XCache) pour éliminer la plupart du ralentissement de l'inclusion de nombreux fichiers, et assurez-vous de supprimer périodiquement les modules inutilisés (généralement chaque projet rassemble des modules qui ne sont pas utilisés à un moment donné du développement)


Je vois que Commerce Kickstart utilise 96 modules contrib.
Pere

L'installation de XCache a rendu mes pages rendues en deux temps. Merci.
cherouvim

1

En complément des deux réponses de @Bojan Zivanovic et @kiamlaluno qui ont raison, vous devriez vous soucier des interactions du module. Le fait d'avoir beaucoup de modules augmente les risques d' interactions de mauvais modules (comme les interactions médicamenteuses). Je dirais que le fait d'avoir plus de 50 modules devient dangereux et que vous devez vérifier tôt que vous n'utilisez pas plusieurs modules pour les mêmes domaines de tâches.

Par exemple, construire des pages avec des blocs, des vues, des panneaux, des champs contenant des vues, des blocs contenant des vues, des blocs contenant des panneaux contenant des vues contenant ... L'idée est d'obtenir quelque chose qu'un cerveau normal peut comprendre (comment mes différentes pages sont-elles composées) . Cela peut avoir un impact important sur les performances lorsque plusieurs comportements de chargement complexes sont masqués et enchaînés. Un autre exemple est l'ajout de plusieurs règles ACL à partir de plusieurs modules pour chaque contenu.

Si vous craignez pour les performances, utilisez toujours des modules de profilage et suivez les différences après chaque ajout de nouveau module. Parfois, un petit crochet avec du SQL à l'intérieur ou un modèle personnalisé économisera du temps à votre site Web.


Drupal est-il fait pour le "cerveau normal"? :)
pico34

1

trois choses à garder à l'esprit lors de la construction d'un site qui peuvent accélérer votre site drupal sont:

  1. Réduisez le nombre de modules
  2. Vérifiez votre journal de requêtes mySQL pour les requêtes lentes et ajustez le code / ajoutez des index si nécessaire.
  3. Mise en cache (et en espérant que la plupart de vos utilisateurs ne sont pas authentifiés)

et en ce qui concerne la partie module, évidemment, un plus grand nombre de modules sera plus lent, car ils nécessiteront une plus grande RAM pour traiter.

30 à 60 modules n'affecteront pas autant votre site.

la ration pour le temps de chargement du site et le nombre de modules est comme 100 module ll retarde le site de 350 ms à 650 ms.

espérons pour u prochain site, vous garderez ces points à l'esprit .. :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.