WPML

Wir haben soeben WPML 4.3 veröffentlicht, das eine völlig neue Methode zur Übersetzung von Strings enthält. Der Admin-Bereich der String-Übersetzung sieht gleich aus, funktioniert aber anders. Anstatt Übersetzungen aus der Datenbank zu lesen, generiert und lädt er .mo-Dateien. Dies führt zu einer deutlich geringeren Datenbankauslastung für die String-Übersetzung.

Warum haben wir die String-Übersetzung neu geschrieben?


Die vorherige Version der String-Übersetzung lud die Strings aus der Datenbank und versuchte, das Laden von .mo-Dateien zu vermeiden. Einige der großen WordPress-Plugins bringen riesige .mo-Dateien mit, die jeden einzelnen Text im Plugin übersetzen. Zum Beispiel haben die .mo-Dateien von WooCommerce etwas mehr als 8.000 Strings. Andere große Plugins haben eine ähnliche String-Anzahl.

Wenn Sie eine Website auf Englisch betreiben, lädt WordPress diese .mo-Dateien nicht. Wenn Sie jedoch eine Website in einer anderen Sprache betreiben (nur eine Sprache, keine mehrsprachigen Websites), lädt WordPress all diese .mo-Dateien. Das Laden dieser Dateien dauert zwischen 100 ms und über einer Sekunde, abhängig vom Server, den Sie verwenden. Diese .mo-Dateien werden auf jeder Seite geladen, auf der das Plugin ausgeführt wird (typischerweise auf allen Seiten der Website).

Bis WPML 4.3 haben wir versucht, diesen Mechanismus zu optimieren. WPML hatte eine standardmäßig aktivierte Option, um zu verhindern, dass das Theme und die Plugins .mo-Dateien laden. Stattdessen haben wir überprüft, welche Strings für jede Seite benötigt werden, und diese spezifischen Strings aus der Datenbank geladen.

Der Mechanismus funktionierte im Allgemeinen gut, aber manchmal ging er nach hinten los. Wenn ein Plugin bei jedem Seitenaufruf viele Strings abruft, lud WPML eine riesige Liste von Strings aus der Datenbank, anstatt das Plugin seine eigene .mo-Datei laden zu lassen.

Da einige Plugins im Laufe der Zeit wuchsen, wurde unser Optimierungsmechanismus immer ineffizienter.

In WPML 4.3 haben wir beschlossen, dass es an der Zeit ist, den Ansatz zu ändern. Wir blockieren keine .mo-Dateien mehr und laden keine Strings mehr aus der Datenbank. Jetzt versucht WPML nicht mehr, die Übersetzungszeiten anderer Plugins oder Themes zu optimieren, sondern optimiert nur noch seine eigenen Strings.

Wie wirkt sich das auf die Ladezeit meiner Website aus?


Das kommt darauf an. Wenn Ihre Website bisher schnell war (was bei der Mehrheit der Websites, die WPML verwenden, der Fall ist), werden Sie keine signifikante Änderung der Geschwindigkeit spüren. Zum Beispiel sind auf wpml.org die meisten Seiten etwas schneller und einige wenige Seiten benötigen etwas mehr Zeit zum Laden.

Der Grund, warum einige Seiten jetzt etwas länger zum Laden brauchen, ist, dass andere Plugins riesige .mo-Dateien laden. Der Geschwindigkeitszuwachs durch die Optimierung der String-Übersetzungen wird durch die Ladezeiten der .mo-Dateien anderer Plugins zunichtegemacht.

Diese Schwankungen sind jedoch sehr gering und wir können sie nur mit fortschrittlichen Profiling-Tools messen. Eine Website, die bisher schnell lief, wird im Allgemeinen auch mit WPML 4.3 weiterhin schnell laufen.

Einige Websites, die unter langsamen Ladezeiten litten, werden jetzt viel schneller laden. Vor WPML 4.3 mussten einige Websites Zehntausende von Strings aus der Datenbank laden. Dies verursachte eine erhebliche Belastung der Datenbank, verbrauchte viel RAM und führte zu langen Seitenladezeiten. Diese Websites werden eine sehr deutliche Verbesserung der Performance feststellen.

Kommen noch weitere Performance-Optimierungen?


Ja. Nachdem wir nun die größten Performance-Probleme im Zusammenhang mit der String-Übersetzung beseitigt haben, werden wir mehr Möglichkeiten zur Optimierung haben.

Wir erwarten, dass wir auf Probleme stoßen, die eine Zusammenarbeit mit den Autoren anderer Plugins und Themes erfordern. Die Performance verbessert sich am meisten, wenn Plugins und Themes weniger Strings laden. Die meisten anderen Plugin- und Theme-Autoren arbeiten gerne mit uns zusammen, und wir sind zuversichtlich, dass wir fast jedes weitere Performance-Problem lösen können. Der Optimierungsprozess ist fast immer derselbe:


  • Riesige .mo-Dateien in mehrere kleinere Dateien aufteilen

  • Die richtigen Dateien auf den richtigen Seiten laden

Die einfachste Unterteilung besteht zwischen Strings, die im Admin-Bereich verwendet werden, und Strings, die im Frontend angezeigt werden. Tiefere Optimierungen unterteilen Frontend-Strings weiter nach der Art der Seite. Zum Beispiel ist es auf E-Commerce-Websites nicht notwendig, die an der Kasse verwendeten Strings auf jeder Seite zu laden.

Wenn sich eine Möglichkeit zur Optimierung innerhalb von WPML selbst bietet, kümmern wir uns natürlich sofort darum.

Aktualisieren, Messen und Berichten


WPML 4.3 wird derzeit bereitgestellt. Wir veröffentlichen es schrittweise über ein oder zwei Wochen hinweg. Wenn Ihre Websites dieses Update noch nicht erhalten haben, geben Sie dem Ganzen etwas Zeit und Sie werden das Update in ein paar Tagen sehen. Sie können die Warteschlange überspringen und dieses Update sofort erhalten, indem Sie zur Seite Plugins –> Installieren gehen, auf den Tab Kommerziell klicken und dann den Button Nach Updates suchen verwenden.

Wenn Sie das Gefühl haben, dass eine Seite auf Ihrer Website länger zum Laden braucht, empfehlen wir Ihnen, das Plugin Query Monitor zu installieren (folgen Sie unserem Tutorial zur Analyse von Performance-Problemen mit Query Monitor). Beachten Sie, dass wir in WPML 4.3 erhebliche Kompatibilitätsprobleme mit Query Monitor behoben haben, sodass die Berichte, die Sie sehen, für Versionen vor WPML 4.3 nicht nützlich sind.

Prüfen Sie, ob WPML-Aufrufe in den Ladeberichten hervorstechen. Wenn dies der Fall ist, melden Sie sich bitte bei uns im technischen Support von WPML. Auch wenn Sie ähnliche Fälle sehen, eröffnen Sie Ihren eigenen. Wir benötigen Zugriff auf Ihre Website, daher ist es besser, an jeder Website separat zu arbeiten.

Natürlich freuen wir uns sehr über Ihre allgemeinen Rückmeldungen zur Performance (es ist ebenso hilfreich, von Verbesserungen zu berichten 🙂). Hinterlassen Sie hier Ihre Kommentare und wir werden uns bei Ihnen melden.

Fanden Sie das nützlich? Teilen Sie diesen Artikel: