it-swarm-es.com

¿Son los complementos de peso pesado o muchos complementos que hacen que un sitio sea lento?

A menudo he oído que tener muchos complementos ralentizará un sitio de WordPress. Esto tiene sentido, por supuesto, ya que cuanto más código se ejecuta, más tiempo tomará.

Me pregunto si la lentitud es mayormente:

  • un resultado de la gran cantidad de complementos? (porque WP tiene que hacer un proceso para localizar y cargar cada complemento)

  • ¿Un resultado de tener algunos plugins lentos/pesados?

Más práctico, cuando estoy escribiendo el mío, ¿debo combinar la funcionalidad en menos archivos para ganar velocidad? ¿O está bien tener de 10 a 20 complementos haciendo una tarea rápida?

6
allclaws

Generalidades

La regla de oro " muchos complementos ralentizan un sitio " es un instrumento muy contundente y es perpetuado por aquellos que no entienden cómo funcionan los complementos, por lo que eligen algo fácil de demonizar.

Sí, los complementos pueden ralentizar su sitio, pero no tiene que ver con la cantidad que tiene que ver con la calidad y lo que intentan lograr. Podría escribir un solo complemento que traería un sitio a sus rodillas (si hubiera una razón para hacerlo) y sería peor que otros 50 complementos bien escritos. Por supuesto, la gente escribe complementos todo el tiempo que harán que un sitio se ponga de rodillas porque no conocen nada mejor.

Creo que la única verdad para " muchos complementos ralentizan un sitio " es que cuando tienes muchos complementos es más probable que encuentres uno malo.

Detalles específicos

Así que vamos a hablar más específicos. Los complementos usan " ganchos " que son bits de PHP código que se ejecuta en ciertos puntos a lo largo de la ruta de ejecución y pueden hacer algo o filtrar un valor o ambos. WordPress comienza a llamar a ganchos anteriormente en sus esfuerzos por componer una página web y generar HTML para enviar al navegador y continúa llamando a enganches casi hasta que termina de ejecutarse para una página determinada.

Dependiendo de qué ganchos utilice un complemento, puede llamarse solo en ciertas páginas, en " background " o incluso casi nunca. Algunos enlaces solo funcionan dentro de la consola de administración. Algunos enlaces solo funcionan dentro de ciertas páginas de la consola de administración. Y algunos ganchos son llamados por el sistema interno psuedo-cron . OTOH, algunos complementos pueden cargar archivos CSS o JS adicionales y cada uno de esos archivos ralentiza el rendimiento debido a la Regla de rendimiento web # 1 .

Si desea tener una idea de cómo se llaman los enganches en cada página, considere usar " Enganches de instrumentos para WordPress "complemento que escribí para la pregunta" ¿Dónde puedo encontrar una lista de WordPress? Hooks? "Aquí hay una captura de pantalla de lo que el complemento muestra en el pie de página cuando se usa:

Screenshot of Instrument Hooks for WordPress Plugin in action

Pero el simple hecho de saber los ganchos no lo ayudará a estar seguro si hay un problema con un complemento. Puede llamar a un complemento 100 veces y puede ser insignificante en comparación con otra llamada de enlace que agrega una cláusula WHERE a una consulta SQL que puede atascar un sitio que tiene más de unos pocos cientos de publicaciones. O podría hacer una llamada HTTP a otro servidor. O podría vaciar las reglas de reescritura en cada carga de página. La lista de los pecados continúa.

La única forma real de saberlo con seguridad es auditar los enlaces del complemento revisando el código fuente o mejor ejecutándolo a través de un depurador como PhpStorm + XDEBUG .

Tus propios plugins

No se preocupe acerca de cómo está organizado el código para propósitos de rendimiento ; preocuparse por lo que hace su código. Optimizando una consulta SQL ejecutada con frecuencia compre aprovechando la API transitoria (Vea: La presentación sobre la API transitoria ) sería mucho mejor para el rendimiento que la combinación del código de 10 complementos en uno.

Por otro lado, considera organizar tu código por otras razones. Creo que una larga lista de complementos puede crear problemas psicológicos para muchos usuarios; ven una pantalla como esta, se sienten abrumados y solo quieren simplificar las cosas:

Long List of Plugins
(fuente: mikeschinkel.com )

Sin embargo, por otro lado a veces los usuarios pueden sentirse abrumados porque un complemento hace demasiado. Por ejemplo, me sentí así con el Complemento de clasificación de estrellas de Gd . Después de probarlo en un proyecto (y, lo que es peor, intentar engancharlo para que haga lo que necesitaba), decidí tirarlo en la oreja.

Así que algunas personas (como yo) a menudo prefieren muchos pequeños complementos ajustados, cada uno de los cuales hace una cosa y lo hacen bien (sería bueno, sin embargo, si WordPress fuera compatible con una función de agrupación similar a cómo iPhone iOS 4 le permite agrupar aplicaciones en carpetas .)

Long List of Gd Star Rating Options
(fuente: mikeschinkel.com )

De todos modos, espero que esto ayude.

8
MikeSchinkel

Naturalmente, los complementos son solo una parte de la historia del rendimiento, por lo que no se puede medir por la cantidad de archivos al final. Hay más y no puede decir de antemano qué funciona, por lo que algo que podría estar bien en su computadora no está en otros.

En lugar de buscar rendimiento, debe definir otros criterios propios para tomar decisiones. Por ejemplo, para los complementos puede preferir poner funcionalidad separada en complementos separados, para no mezclar cosas. Es posible que esto no sea nunca en términos de rendimiento en términos de velocidad o uso de memoria, pero se trata de mantener las cosas ligeramente acopladas para que sea más fácil desarrollar y usar los complementos. No se olvide, cuando sale una nueva versión de WordPress, solo dos complementos pueden dividirse en diez y no el único grande todo el tiempo. Y al final, un usuario solo necesita tres de diez complementos, por lo que necesita menos memoria.

Si un usuario se queja del rendimiento de su Blog, normalmente puede sugerir que solo puede comprar un servidor más grande y que se resuelvan los problemas de rendimiento.

(La optimización temprana es la raíz de todo mal. Simplemente ya no pienses en el rendimiento al escribir complementos. Tómelo de la manera más fácil y clara: WordPress no está diseñado para el rendimiento al final, no cometa el error e intente escribir complementos para ello;)

WordPress está diseñado con Big Ball of Mud- (anti-) design-pattern . El sistema de plugin es uno que está funcionando muy bien con él. Simplemente no creas que puedes optimizar tanto como un autor de plugins. Usted no puede No luches :)

2
hakre

Puede usar WordPress con cientos de complementos, cuando el diseño de los complementos es correcto: la mayoría de los complementos tiene un código incorrecto y este es el problema del rendimiento de WordPress.

0
bueltge

se trata de tener los complementos adecuados. Por ejemplo, verifique si sus complementos escriben sus propias tablas en la base de datos, esto generalmente ralentiza un poco las cosas. cualquier cosa que cargue una gran cantidad de jquery o javascript generalmente también lo hará un poco más lento. Grandes cantidades de complementos no siempre significan una caída del rendimiento. Asegúrese de que está utilizando un complemento de almacenamiento en caché que también ayudará.

Supongo que estás preguntando esto porque estás experimentando una desaceleración? Pregunte a su anfitrión si hay algo que pueda hacer para acelerarlo y asegúrese de que la configuración de php esté configurada correctamente.

0
rfair404

Por lo general, no instalo demasiados complementos para WordPress, en lugar de eso trato de usar marcos de temas que hacen el trabajo principal. Es cierto que cada complemento se sumará al consumo de recursos.

Cada complemento hará algo, tendrá que inicializarse, por lo que ejecutará algún código cuando se solicite una página para su sitio web, sin mencionar los muchos enlaces en el panel de administración de WordPress que hace que sea más difícil de cargar.

Tal vez no lo note en un alojamiento compartido con 2-3k páginas vistas al día, pero si tiene un sitio web con 3k usuarios activos que cada uno de ellos solicite 10 páginas cada día, puede convertirse en un problema.

0
Lucian

Está viendo 2 cosas que ralentizarán su sitio: 1, el procesamiento de los archivos al servidor (s), su php y 2, la forma en que el navegador lee el código.

Si el código es descuidado, el navegador verificará el código dos o tres veces antes de presentarlo en la pantalla. Si usa una gran cantidad de complementos con muchas bases de datos y/o solicitudes de servidor, esto podría llevar algún tiempo y, si no se hacen correctamente, podría haber conflictos con la solicitud que podrían causar tiempo adicional o peor, su sitio no se carga y/o error de mensajes.

rFair404 mencionó los programas de almacenamiento en caché que ayudarán con las solicitudes del servidor y algunos comprimirán el código html y eso me recuerda que debo comprimir algunas páginas css.

0
javajoba

Yo diría que la respuesta es ambas .


Más complementos = más lentitud

Cada complemento que habilite que agregue una hoja de estilo y/o un archivo javascript a la página está ralentizando drásticamente su sitio web.

Incluso los mejores complementos escritos atascarán su sitio si cada uno requiere una hoja de estilo y un archivo javascript para hacer algo en la parte frontal de su sitio web.

Combina tus archivos

Si ejecuta un sitio de WordPress, se lo debe a usted mismo para aprender cómo:

  • Combinar correctamente los archivos javascript juntos
  • Combinar correctamente los archivos de hojas de estilo juntos
  • Mueve las llamadas de javascript del encabezado al pie de página

Si ejecuta un sitio de wordpress y no puede hacer las cosas anteriores, entonces no debería estar ejecutando un sitio de wordpress ... o al menos no debería quejarse cuando su sitio se ralentiza a medida que carga más complementos.

Además, cualquier persona que esté ejecutando un sitio de wordpress debe saber cómo:

  • Minimizar CSS y archivos javascript
  • Activar la compresión del servidor
  • Asegúrate de que los encabezados caduquen estén provistos de scripts y hojas de estilo

Complementos mal escritos = más lentitud

Las principales formas en que un autor de plugins realmente ralentiza su sitio web son las siguientes:

  1. Cargar múltiples scripts o hojas de estilo para una sola página - ver más arriba
  2. El uso incorrecto de la base de datos (consultas mal escritas, modificaciones de consulta, etc.) puede tener un impacto grave en un sitio web. El hecho de no poder almacenar en caché los resultados cuando sea posible también puede hacer que las cosas sean más lentas La mayoría de la gente apesta en el desarrollo y administración de bases de datos. Cuando esas personas usan bases de datos, surgen problemas.
  3. Uso incorrecto de wp cron: los trabajos de cron constantes en cada solicitud de usuario harán que un servidor se ponga de rodillas.

A falta de escribir código realmente malo (bucles semi-infinitos, toneladas de expresiones regulares donde no sea necesario, etc.), la mayoría de las cosas no tendrán mucho efecto si se considera el tamaño de wordpress. Agregar un 1% de tiempo extra de procesamiento no es mucho.


Tareas que son naturalmente lentas

Hay algunas cosas que son lentas, no importa lo bien que estén escritas:

  1. Uso de servicios de terceros: cada vez que su respuesta a un usuario se base en una respuesta de un tercero, su sitio será mucho más lento.

Por supuesto, cuando se realiza correctamente (resultados en caché, hace como procesos de fondo cuando es posible, etc.) muchos servicios de terceros se pueden usar sin muchos problemas.

0
Privateer