WPML 3.5 comprend une modification majeure de String Translation. Quand nous l’avons lancé, nous avons découvert un certain nombre de cas qui n’étaient pas apparus au cours du développement. Les mises à jour suivantes ont corrigé tous les problèmes et amélioré la performance.

Corrections depuis WPML 3.5

  • Correction d’une exception non interceptée dans les cas où la colonne domain_name_context_md5 n’existait pas dans la table icl_strings
  • Correction de l’erreur fatale : exception non interceptée “InvalidArgumentException” avec le message “l’ID argument doit être numérique et supérieur à 0 lors du filtre des liens permanents” (Argument ID must be numeric and greater than 0 when filtering permalinks)
  • Correction de l’erreur fatale apparaissant lors de la mise à niveau : Erreur base de données WordPress : la clé spécifiée était trop longue; la longueur max de la clé est de 1000
  • Correction de l’erreur fatale : la déclaration de WPML_Post_Element::get_type() doit être compatible avec celle de WPML_Translation_Element::get_type() pour PHP 5.2
  • Suppression de la barre oblique inverse du début pour éviter les avertissements PHP avant 5.3

Amélioration de la vitesse

Nous avons effectué quelques réglages sur la nouvelle table qui stocke les données indiquant quelles chaînes apparaissent sur quelle page. Ces changements réduisent significativement la taille de la table, améliore sa performance et réduise la consommation en terme de mémoire.

  • Découpage d’une grande table avec des redondances en deux petites tables plus efficaces
  • Index de la table optimisés
  • Limitation des possibilités de croissance de la table pour les sites utilisant des arguments URL, en utilisant une liste blanche qui modifie la sélection des pages

Les résultats

Nous avons effectué des mesures de la performance de notre propre site au cours des mises à jour des versions. Vous pouvez voir comment le chargement a diminué, puis est remonté (quand les index des tables n’étaient pas optimisés) et qu’il maintenant revenu et est en dessous de l’original.

WPML 3.4 - String Translation prend plus de temps à charger car nous préchargeons de très nombreuses chaînes

WPML 3.4 – String Translation prend plus de temps à charger car nous préchargeons de très nombreuses chaînes

String Translation est inactif, mais désormais nous avons une importante table string_pages

String Translation est inactif, mais désormais nous avons une importante table string_pages

Nous avons divisé la table string_pages en deux plus petites, mais un index supplémentaire ralentit les sélections

Nous avons divisé la table string_pages en deux plus petites, mais un index supplémentaire ralentit les sélections

Des tables plus petites et un index correct. Nous sommes enfin au point.

Des tables plus petites et un index correct. Nous sommes enfin au point.

Les nombres absolus contenus dans ces graphiques sont moins significatifs, car ils ont été relevés au cours de jours différents de la semaine. Les vendredis, notre trafic est bien moins important que les lundis. Pour comprendre les changements, regardez la proportion entre les segments. Vous pouvez voir qu’à l’origine, l’accès icl_strings prenait à peu près la même que la récupération des publications (ce qui n’est pas une bonne chose). Désormais, tous les accès à la base de données WPML prennent environ 1/3 des requêtes des publications. Ceci est vraiment très important car WPML doit charger de nombreuses chaînes, tandis que WordPress n’a besoin que de quelques publications.

Un meilleur processus la prochaine fois

Nous avons dû publier cette mise à jour avant d’être capables d’effectuer des mesures complètes de performance car elle comprend des changements pour WordPress 4.6. Dans le futur, nous découplerons les améliorations en termes de performance de la compatibilité de WordPress. Dès qu’une nouvelle version de WordPress atteint le stade “release candidate”, nous ferons une publication mineure comprenant seulement des modifications de compatibilité. Nous garderons du temps pour lancer des changements plus importants en termes de performance, non liés aux corrections de bogues et aux mises à jour de compatibilité, et nous les lancerons uniquement lorsque nous seront entièrement satisfaits des résultats.

La prochaine version de WPML mettra elle aussi l’accent sur la stabilité et la performance. 99% des sites utilisant WPML fonctionnent normalement maintenant, mais il existe quelques sites qui utilisent des configurations “uniques” du serveur Web, de PHP ou de la base de données. Nous allons nous consacrer à eux dans la prochaine mise à jour mineure. Nous allons également inclure quelques optimisations de la performance supplémentaires, ce qui allégera à la fois l’administration et la partie frontale.

Des commentaires ?

Si vous avez des questions, des idées ou des suggestions, merci d’ajouter vos commentaires. Nous sommes très heureux de recevoir vos remarques et faisons de notre mieux pour vous fournir ce dont vous avez besoin.