web-dev-qa-db-fra.com

Est-ce que ce sont des plugins lourds ou beaucoup de plugins qui ralentissent un site?

J'ai souvent entendu dire qu'avoir beaucoup de plugins ralentirait un site WordPress. Cela a du sens, car plus le code qui s’exécute est long, plus il faudra de temps.

Je me demande si la lenteur est principalement:

  • à la suite du grand nombre de plugins? (parce que WP doit effectuer un certain traitement pour localiser et charger chaque plugin)

  • le résultat d'avoir quelques plugins lents/lourds?

Plus concrètement, lorsque j'écris le mien, devrais-je combiner la fonctionnalité dans moins de fichiers pour gagner de la vitesse? Ou est-ce normal d'avoir 10 à 20 plugins effectuant chacun une tâche rapide?

6
allclaws

Généralités

La règle de base " beaucoup de plugins ralentissent un site " est un instrument très brutal. Elle est perpétuée par ceux qui ne comprennent pas le fonctionnement des plugins, ils choisissent donc quelque chose de facile à diaboliser.

Oui, les plugins peuvent ralentir votre site, mais cela n’a rien à voir avec la quantité, mais avec la qualité et ce qu’ils essaient d’accomplir. Je pourrais écrire un seul plugin qui mettrait un site à genoux (s'il y avait une raison pour que je le fasse) et ce serait pire que 50 autres plugins bien écrits. Bien sûr, les gens écrivent des plugins tout le temps qui vont mettre un site à genoux parce qu'ils ne connaissent pas mieux.

J'imagine que la seule vérité à " beaucoup de plugins ralentissent un site " est que lorsque vous avez beaucoup de plugins, il est plus probable que vous en preniez un mauvais.

Détails

Alors parlons plus en détail. Les plugins utilisent des " crochets " qui sont des bits de code PHP qui exécutent un certain nombre de points le long du chemin d’exécution et peuvent soit faire quelque chose, soit filtrer une valeur, voire les deux. WordPress commence à appeler les points d'ancrage plus tôt dans ses efforts pour composer une page Web et générer du code HTML à envoyer au navigateur. Il continue d'appeler des points d'ancrage presque jusqu'à la fin de son exécution pour une page donnée.

Selon les hooks utilisés par un plugin, il peut être appelé uniquement sur certaines pages, dans le " arrière-plan " ou même presque jamais. Certains crochets ne fonctionnent que dans la console d'administration. Certains points d'ancrage ne fonctionnent que dans certaines pages de la console d'administration. Et certains hooks sont appelés par le système interne psuedo-cron . OTOH, certains plugins peuvent charger des fichiers CSS ou JS supplémentaires et chacun de ces fichiers ralentit les performances en raison de règle de performance Web n ° 1 .

Si vous voulez savoir quels sont les hooks appelés sur chaque page, envisagez d'utiliser les " hooks pour WordPress "plug-in que j'ai écrit pour la question" Où puis-je trouver une liste des crochets WordPress? "Voici une capture d’écran de ce que le plugin montre dans le pied de page lorsqu’il est utilisé:

Screenshot of Instrument Hooks for WordPress Plugin in action

Mais le simple fait de connaître les points d'ancrage ne vous aidera pas à savoir s'il existe un problème avec un plugin. Vous pouvez appeler un plugin 100 fois et l'appeler peut être négligeable comparé à un autre appel de raccordement qui ajoute une clause WHERE à une requête SQL, ce qui pourrait gâcher un site contenant plus de quelques centaines de publications. Ou il pourrait faire un appel HTTP à un autre serveur. Ou cela pourrait vider les règles de réécriture à chaque chargement de page. La liste des péchés est longue.

Le seul moyen de le savoir est de vérifier les points d'ancrage du plug-in en examinant le code source ou en l'exécutant mieux via un débogueur comme PhpStorm + XDEBUG .

Vos propres plugins

Ne vous inquiétez pas de la façon dont le code est organisé à des fins d'exécution ; s'inquiéter de ce que fait votre code.Optimisation d'une requête SQL fréquemment exécutéebuy en tirant parti de l'API transitoire (voir: Une présentation sur l’API transitoire ) seraitbien meilleure pour la performanceque la fusion du code de 10 plugins en un.

D'un autre côté, songez à organiser votre code pour d'autres raisons. Je pense queune longue liste de plugins peut créer une détresse psychologiquepour beaucoup d'utilisateurs; ils voient un écran comme celui-ci, se sentent dépassés et veulent simplement simplifier les choses:

Long List of Plugins
(source: mikeschinkel.com )

Pourtant, par contre , les utilisateurs peuvent parfois être dépassés car un plugin en fait trop. Par exemple, je me sentais comme ça avec le plugin Gd Star Rating . Après l'avoir essayé sur un projet (et pire, en essayant de l'accrocher pour qu'il fasse ce dont j'avais besoin), j'ai décidé de le jeter à l'oreille.

Ainsi, certaines personnes (comme moi) préfèrent souvent un grand nombre de petits plug-in compacts qui font chacun une chose et le font bien (ce serait bien si WordPress prend en charge une fonctionnalité de regroupement un peu comme iPhone iOS 4 vous permet de regrouper des applications dans des dossiers .)

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

Quoi qu'il en soit, espérons que cela aide.

8
MikeSchinkel

Naturellement, les plug-ins ne sont qu'une partie de la performance, vous ne pouvez donc pas le mesurer en fonction du nombre de fichiers. Il y a plus et vous ne pouvez pas dire à l'avance ce qui fonctionne, donc quelque chose qui pourrait bien être sur votre ordinateur ne l'est pas sur d'autres.

Au lieu de rechercher la performance, vous devez définir d’autres critères propres à prendre des décisions. Par exemple, pour les plugins, vous pouvez préférer mettre des fonctionnalités séparées dans des plugins séparés, afin de ne pas mélanger les choses. Cela n’a peut-être pas toujours un impact positif sur les performances en termes de vitesse ou d’utilisation de la mémoire, mais il est essentiel de garder les choses légèrement couplées pour faciliter le développement et l’utilisation des plugins. N'oubliez pas que lorsqu'une nouvelle version de WordPress est disponible, seuls deux plug-ins peuvent sortir du lot, et non le plus gros tout le temps. Et à la fin, un utilisateur n'a besoin que de trois plugins sur dix, il a donc besoin de moins de mémoire.

Si un utilisateur se plaint de la performance de son blog, vous pouvez normalement suggérer qu'il ne peut acheter qu'un serveur plus gros et que les problèmes de performance soient résolus.

(L'optimisation prématurée est la racine de tout Mal. Il suffit de ne plus penser aux performances lors de l'écriture de plugins. Prenez la voie la plus claire et la plus claire: WordPress n’est pas conçu en termes de performances. Ne commettez pas l’erreur et essayez d’écrire des plugins performants;)

WordPress est conçu avec le Big Ball of Mud- (anti) design-pattern . Le système de plugin fonctionne très bien avec ce dernier. Juste ne pensez pas que vous pouvez optimiser autant qu'un auteur de plugin. Tu ne peux pas. Ne vous battez pas :)

2
hakre

Vous pouvez utiliser WordPress avec des centaines de plugins, lorsque la conception des plugins est correcte - la plupart des plugins ont un code incorrect et c’est le problème des performances de WordPress.

0
bueltge

il s'agit avant tout de disposer des bons plug-ins. Par exemple, vérifiez si vos plug-ins écrivent leurs propres tables dans la base de données, cela ralentit généralement un peu les choses. tout ce qui charge beaucoup de jquery ou javascript va généralement le ralentir un peu aussi. De grandes quantités de plug-ins ne signifient pas toujours une baisse des performances. Assurez-vous que vous utilisez un plug-in de mise en cache qui vous aidera également.

Je suppose que vous demandez ceci parce que vous rencontrez un ralentissement? Demandez à votre hôte s'il y a quelque chose que vous pouvez faire pour l'accélérer et assurez-vous que votre configuration php est correctement définie.

0
rfair404

D'habitude, je n'installe pas trop de plugins pour WordPress, j'essaie plutôt d'utiliser des frameworks de thème qui font le travail principal. Il est vrai que chaque plugin va s’ajouter à la consommation de ressources.

Chaque plugin fera quelque chose, il devra initialiser, donc il lancera du code quand une page de votre site web sera demandée, sans parler du nombre de liens sur le panneau d'administrateur WordPress qui le rend plus difficile à charger.

Peut-être que vous ne le remarquerez pas sur un hébergement partagé avec 2 à 3 000 pages vues par jour, mais si vous avez un site Web avec 3 000 utilisateurs actifs, chacun d'entre eux demande 10 pages chaque jour, cela pourrait devenir un problème.

0
Lucian

Vous regardez 2 choses qui vont ralentir votre site: 1, le traitement des fichiers sur le (s) serveur (s), votre php et 2, la façon dont le parcours lit le code.

Si le code est bâclé, le navigateur vérifiera le code avant de le présenter à l'écran. Si vous utilisez beaucoup de plugins avec beaucoup de demandes de base de données et/ou de serveur, cela peut prendre un certain temps et s’ils ne sont pas faits correctement, il pourrait y avoir des conflits avec la demande qui pourraient causer du temps supplémentaire ou pire, votre site ne se charge pas et/ou messages d'erreur.

rFair404 a mentionné des programmes de mise en cache qui faciliteraient les requêtes du serveur et certains compresseraient le code html, ce qui me rappelle que je dois compresser certaines pages CSS.

0
javajoba

Je dirais que la réponse est les deux .


Plus de plugins = plus de lenteur

Chaque plugin que vous activez qui ajoute une feuille de style et/ou un fichier javascript à la page ralentit considérablement votre site Web.

Même les meilleurs plugins écrits enlèveront votre site si chacun requiert une feuille de style et un fichier javascript pour faire quelque chose sur le front de votre site web.

Fusionner vos fichiers

Si vous utilisez un site wordpress, vous vous devez d’apprendre à:

  • Fusionnez correctement les fichiers javascript
  • Fusionner correctement les fichiers de styles
  • Déplacer les appels javascript de l'en-tête vers le pied de page

Si vous utilisez un site wordpress et que vous ne pouvez pas faire les choses ci-dessus, vous ne devriez pas utiliser un site wordpress ... ou du moins vous ne devriez pas vous plaindre lorsque votre site ralentit lorsque vous chargez plus de plugins.

En outre, toute personne exploitant un site wordpress doit savoir:

  • Réduire les fichiers CSS et javascript
  • Activer la compression du serveur
  • Assurez-vous que les en-têtes d'expiration sont fournis avec les scripts et les feuilles de style

Plugins mal écrits = plus de lenteur

Les principaux moyens pour un auteur de plug-in de ralentir réellement votre site Web sont les suivants:

  1. Chargement de plusieurs scripts ou feuilles de style pour une seule page - voir ci-dessus
  2. Utilisation incorrecte de la base de données - des requêtes mal écrites, des modifications de requête, etc. peuvent avoir un impact sérieux sur un site Web. Ne pas mettre les résultats en cache dans la mesure du possible peut également ralentir les choses. La plupart des gens sont nuls lors du développement et de l'administration de bases de données. Lorsque de telles personnes utilisent des bases de données, des problèmes s'ensuivent.
  3. Utilisation incorrecte de wp cron - des tâches cron constantes à la demande de chaque utilisateur placent un serveur à terre.

À part l’écriture de très mauvais code (boucles semi-infinies, tonnes d’expressions régulières non nécessaires, etc.), la plupart des choses n’auront pas beaucoup d’effet si l’on considère déjà la taille de wordpress. Ajouter 1% de temps de traitement supplémentaire n'est pas beaucoup.


Tâches intrinsèquement lentes

Certaines choses sont lentes, même si elles sont bien écrites:

  1. Utilisation de services tiers - Chaque fois que votre réponse à un utilisateur s'appuiera sur une réponse d'une tierce partie, votre site deviendra beaucoup plus lent.

Bien sûr, lorsque cela est fait correctement (résultats mis en cache, en tant que processus d'arrière-plan si possible, etc.), de nombreux services tiers peuvent être utilisés sans trop de problèmes.

0
Privateer