WPML

Au cours des derniers mois, nous avons eu l’impression que notre propre site – wpml.org – ralentissait. Tout d’abord, nous avons adopté l’approche brutale de la mise à niveau du serveur. Comme cela n’a pas aidé, nous nous y sommes mis et avons réellement analysé le problème. Le résultat est la version publiée aujourd’hui, qui a réduit la charge de notre processeur et notre temps de réponse de 70 %.

Ce que nous avons appris sur l’analyse des performances


Les performances ont également été très importantes pour nous. Depuis des années, nous testons la mémoire, les requêtes et le temps processeur de WPML, et nous les améliorons à chaque version publiée. Ce que nous avons appris de ce cycle de développement, c’est que les tests statiques ne révèlent pas toujours les vrais problèmes.

La méthode que nous utilisions jusqu’à présent pour tester les performances consistait à :

  • Créer une grande base de données avec de nombreux articles, postmeta, catégories et utilisateurs
  • Produire une liste des pages les plus « lourdes »
  • Les charger de nombreuses fois, mesurer le temps de chargement et établir un profil

Cela nous a indiqué les pages de l'interface publique et de l'interface d'administration que nous devions déboguer et optimiser. Nous nous sommes assurés de réduire le nombre de requêtes, d’éviter les requêtes longues et d’écrire un code PHP efficace.

Alors, que manque-t-il ?

WordPress et WPML sont un peu plus complexes que « demander une page et attendre qu’elle se charge ». Tout passe par la base de données, qui est une ressource partagée. Une action que le visiteur A effectue avec la base de données peut affecter l’expérience que le visiteur B reçoit.

Pour comprendre ces goulots d’étranglement, nous avons installé un outil appelé Appoptics sur notre site de production. Il nous a permis de mesurer quelles fonctions et requêtes prennent du temps, afin que nous puissions analyser pourquoi.

L’amélioration réelle des performances


Nous avons découvert qu’une opération apparemment inoffensive dans la Traduction de chaînes présentait un conflit de ressources important avec une requête fréquente vers la table d'options provenant d’une autre extension. Si vous n’exécutez cet appel qu’un million de fois, vous ne ressentez aucun problème. Cependant, lorsque d’autres pages doivent accéder à la table d'options, elles doivent attendre que les chaînes n’y accèdent plus. La liste des requêtes en attente s’allonge, elle submerge la base de données et c’est la catastrophe.
Amélioration des performances pour wpml.org

En regardant le graphique, vous pouvez voir que la majeure partie des efforts de notre serveur était consacrée à la base de données (cette table qui n’arrêtait pas de se verrouiller et de se déverrouiller). Vous pouvez probablement deviner à quelle heure nous avons appliqué le correctif.

Mais j’ai d’autres problèmes de performances, pouvez-vous les résoudre ?


Ce que nous avons détecté aidera certainement non seulement wpml.org, mais aussi de nombreux autres sites à fort trafic qui utilisent WPML. Si vous avez un site avec une très faible charge, vous ressentirez à peine cette amélioration. Elle n’affecte que les sites avec beaucoup de simultanéité et des personnes faisant de nombreuses choses différentes.

Il est possible que d’autres sites puissent utiliser d’autres optimisations de performances. Nous avons maintenant appris que la meilleure façon de faire ce travail est d’installer un profilage sur le site de production réel, qui souffre de mauvaises performances. Même si nous recevons une copie de votre base de données, nous ne pouvons pas simuler votre trafic. C’est pourquoi tous nos cycles précédents n’ont pas détecté ce problème spécifique.

D'ailleurs, notre cycle d’amélioration des performances n’a pas révélé de goulots d’étranglement uniquement dans WPML. Nous avons corrigé ce que nous avons trouvé dans WPML, mais nous avons remarqué des problèmes dramatiques à d’autres endroits. Certains ont été corrigés par nos soins et d’autres ont été optimisés via la base de données.

Si cela vous intéresse, faites-le nous savoir et nous vous aiderons à installer une analyse des performances sur vos sites de production. Ensuite, nous serons très heureux de vous aider à analyser les résultats. Si nous trouvons quoi que ce soit dans WPML, nous le corrigerons. Il y a de fortes chances que les sites ayant des problèmes de performances trouvent un certain nombre de problèmes provenant de sources surprenantes.

Quoi de neuf dans WPML 4.2.6

Noyau WPML 4.2.6

  • Ajout du filtre wpml_post_edit_meta_box_priority pour modifier la priorité de la boîte méta d'édition d'article de WPML
  • Correction d'un problème lors de la mise à jour des extensions dans le cas d'installations en sous-dossier – utilisation systématique des URL du site
  • Enregistrement des avis uniquement lorsque cela est requis pour réduire les écritures supplémentaires dans la table wp_options
  • Correction d'un problème de sécurité avec les liens du sélecteur de langue

WPML Traduction de chaînes 2.10.4

  • Correction d'un problème avec l'importation de fichiers mo de ST afin que la table wp_option ne soit pas mise à jour inutilement

WPML Gestion de traduction 2.8.5

  • Amélioration du style des contrôles de pagination sur la page des travaux de traduction
  • Correction d'un problème avec l'attribution des traducteurs sur la page des travaux de traduction lorsque la langue de l'interface d'administration est différente de l'anglais
  • Correction du contenu incorrect de la colonne « Traduit par » lorsque la langue de l'interface d'administration est différente de l'anglais

WPML Media Translation 2.5.2

  • Enregistrement des avis uniquement lorsque cela est requis pour réduire les écritures supplémentaires dans la table wp_options

WPML CMS Nav 1.5.1

  • Amélioration des performances en vidant le cache uniquement lorsque cela est applicable

Téléchargement et mise à jour


Comme toujours, vous recevrez cette mise à jour automatiquement pour tous vos sites enregistrés. Vous pouvez toujours vous connecter à votre compte WPML pour la télécharger et l'installer manuellement.

Nous vous recommandons de faire des sauvegardes avant de mettre à jour quoi que ce soit sur votre site.

Des commentaires ? Des questions ? Des suggestions ?


Nos sites fonctionnent beaucoup plus rapidement maintenant, mais nous aimerions avoir des nouvelles de vos sites. Veuillez laisser vos commentaires et nous vous répondrons.

Vous avez trouvé cela utile ? Partagez cet article :