¿Tener más módulos habilitados hace que el sitio sea más lento?


13

¿Tener más módulos habilitados hace que el sitio sea más lento?
He instalado 30 módulos para mi sitio y me temo que será demasiado lento.

Respuestas:


11

Tener más módulos habilitados hace que el arranque de Drupal sea más lento, ya que se cargan y analizan más archivos. Además, tener más módulos habilitados no significa automáticamente tener un sitio más lento, ya que no todos los módulos ejecutan código para cada página solicitada.

Por ejemplo, si ha instalado Vistas y solo ha habilitado la vista de la página principal, las Vistas no se ejecutarán cuando la página solicitada sea una página de nodo. Sin hook_menu_alter()embargo , el módulo Vistas se implementa , y eso se ejecuta incluso si no ha habilitado ninguna vista, pero el módulo Vistas está habilitado. Cualquier implementación de hook_menu_alter()se invoca cuando se reconstruyen los menús, y eso normalmente no ocurre en cada solicitud de página.


66
Tener muchos módulos que no hacen "nada" hace que el sitio sea un poco más lento. Tiene que ver con la forma en que funciona el sistema de gancho; Drupal realiza una llamada module_hook por cada módulo instalado, cada vez que se ejecuta un enlace . Todos estos controles pueden sumar. En nuestro sitio, module_hook se llama 13,000 veces y eso tomó 168ms; cada poquito se suma.
mikeytown2

15

Si. Sin embargo, 30 no es nada de qué preocuparse. Estás en problemas cuando superas los 100;)

Instale un caché de código de bytes (APC o XCache) para eliminar la mayor parte de la ralentización de incluir muchos archivos y asegúrese de eliminar periódicamente los módulos no utilizados (generalmente cada proyecto reúne módulos que no se utilizan en algún momento durante el desarrollo)


Veo que Commerce Kickstart usa 96 módulos contrib.
Pere

La instalación de XCache hizo que mis páginas se procesen en medio tiempo. Gracias.
cherouvim

1

En complemento a las dos respuestas de @Bojan Zivanovic y @kiamlaluno que son correctas, debe preocuparse por las interacciones del módulo. Tener muchos módulos aumenta los riesgos de interacciones de módulos defectuosos (como las interacciones de drogas). Diría que tener más de 50 módulos se vuelve peligroso, y que debe verificar antes que no use varios módulos para los mismos dominios de tarea.

Como ejemplo, construir páginas con bloques, vistas, paneles, campos que contienen vistas, bloques que contienen vistas, bloques que contienen paneles que contienen vistas que contienen ... La idea es obtener algo que un cerebro normal pueda entender (¿cómo están compuestas mis diferentes páginas?) . Esto puede tener un gran impacto en el rendimiento cuando se ocultan y encadenan varios comportamientos de carga complejos. Otro ejemplo es agregar varias reglas de ACL de varios módulos para cada contenido.

Si temes por las actuaciones, utiliza siempre módulos de creación de perfiles y realiza un seguimiento de las diferencias después de cada nueva adición de módulos. En algún momento, un pequeño gancho con algo de SQL dentro o una plantilla personalizada ahorrará la generación de tiempo de su sitio web.


¿Drupal está hecho para "cerebro normal"? :)
pico34

1

tres cosas a tener en cuenta durante la construcción del sitio que pueden acelerar su sitio drupal son:

  1. Reduce la cantidad de módulos
  2. Revise su registro de consultas mySQL para consultas lentas y ajuste el código / agregue índices según sea necesario.
  3. Almacenamiento en caché (y esperando que la mayoría de sus usuarios no estén autenticados)

y con respecto a la parte del módulo, obviamente, un mayor número de módulos más lenta será la velocidad, ya que requieren una RAM más grande para procesar.

todavía 30 a 60 módulos no afectarán tanto a su sitio.

la ración para el tiempo de carga del sitio y el número de módulo es como 100 módulos retrasarán el sitio entre 350 ms y 650 ms.

espero que en el próximo sitio tengas en cuenta esos puntos ... :)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.