Der Zufall will es, dass auf meinen letzten Partyguide-Artikel von gestern Nacht gleich noch mal einer folgt. Keine Angst! Da kein Mensch ein zweifaches Bashing pro Tag erträgt, hier für einmal ein Lob. Aber begründet.
Nach dem Motto: „Und sie dreht sich doch!“ kommt Bewegung in die Sache. In meinem Artikel Effiziente Web-Projekte anhand von Partyguide, Teil 2 habe ich die performance-intensive Generierung des „Pie Charts“ kritisert. Das Kuchendiagramm, das bei jedem Seitenaufruf serverseitig mit PHP/GDlib neu generiert wird, war mir ein Dorn im Auge:
Abgesehen von zu langen Fliesskommazahlen stellt sich mir die viel brennendere Frage, ob man diese Kuchendiagramme wirklich bei jedem Aufruf dynamisch generieren sollte? Wäre es performance-mässig nicht deutlich intelligenter, auf eine statische Grafik zu verweisen?
Dies ist ohne weiteres machbar – und würde den Web-Server entlasten. Anstelle ein PHP-Script aufzurufen, dies durch den PHP-Parser zu jagen, die GDlib (oder was für eine Grafik-Bibliothek auch immer bei Partyguide im Einsatz steht) zu starten, das Bild zusammenzusetzen und die Binärdaten zum Client zu senden, würde es ausreichen, wenn Apache ein im Filesystem liegendes GIF oder PNG an den Browser zurücksenden zu lassen.
In – sagen wir – 80% der Fälle ist es nämlich gar nicht nötig, das Bild neu zu berechnen, weil das Profil keine neuen Bewertungen erhalten hat. Zudem verändern sich die Diagramme von Accounts mit sehr vielen Bewertungen auch weniger rasch – wenn zu 1000 Bewertungen eine weitere dazu kommt, bedeutet dies Änderungen im Promillebereich, die bei einer derart kleinen Grafik kaum zu erkennen wäre.
Heute nun habe ich per Zufall bemerkt, dass das Diagramm ausgewechselt wurde:
Zwar nicht wie von mir vorgeschlagen durch eine statische Version (s. Zitat aus meinem früheren Artikel), sondern durch ein Flash-Kuchendiagramm. Heureka! Es tut sich was.
Es freut mich natürlich primär einmal, dass man die grauen Hirnzellen angestrengt hat und eine einfallsreiche Lösung entwickelt hat, die mich positiv überrascht! Obwohl ich kein Freund von Flash bin, muss ich den Entwicklern attestieren: Ziel erfüllt. Die Prozessoren der Server werden es euch danken. Denn neu wird die Grafik rein clientseitig generiert, also nur noch die CPUs der Benutzer in Anspruch genommen.
Ich freue mich, in nächster Zeit weitere Detailverbesserungen entdecken zu dürfen. Nun scheint ein Profi am Werk zu sein, der sein Handwerk versteht.