Hi,
Wenn man mal überlegt, was die GD-Lib so alles an Aufwand treiben muss,
Das weiß ich ja eben nicht... :-/
nein, aber man kann es anhand der notwendigen Schritte erahnen. Wenn es eine Grafikdatei gibt, die quasi die Vorlage ist, muss die erst gelesen und dekomprimiert werden, dann kommen die Änderungen, und schließlich muss aus der unkomprimierten Bitmap-Grafik im Arbeitsspeicher wieder eine komprimierte JPEG- oder PNG-Ressource werden. Dass das mehr Aufwand ist, als eben mal nachzuprüfen, ob eine bestimmte Datei existiert, und diese ggf. 1:1 an den Client durchzureichen, ist logisch.
und dass das Lesen der Originaldatei ja vermutlich auch schon ein Teil davon ist,
Eine Originaldatei in diesem Sinne gibt es nicht. Alles von Grund auf mit GD...
Dann ist das möglicherweise schon eine Performance-Sünde. Aber ich weiß nicht, wie die Grafik aussieht; vielleicht ist sie tatsächlich so einfach zu generieren, dass sich eine Vorlage nicht lohnt.
Es ist nur ein Shade hier, ein Blend da, ein bisschen Text... keine Photobearbeitung oder etwas, was auch nur halbwegs in die Richtung ginge...
Egal, das ist aufwendig genug, wenn du bedenkst, dass man da jedes Pixel einzeln anfassen muss.
Ob inline oder nicht, hat nichts mit der Performance zu tun - es sei denn, ich verstehe dich gerade völlig falsch.
Naja, wenn ich für die Dateien (außer den Defaults) überhaupt keinen Filesystem-Zugriff benutze, scheint mir das scho... okay... sagen wir mal, es verhindert Latenzen...
Dann verabschiedest du dich aber bewusst von der ersten Caching-Ebene.
sonst müsste ich ja Datei speichern, die URL schicken; der Client liest die URL und fragt sie an; der Server muss die Datei wieder laden (FS-Cache mal hin oder oder...) und dann schicken...
Unfug. Das geht alles in einem Aufwasch:
* Request geht an den Server
* Server schmeißt PHP an
* PHP sieht nach, ob die Datei schon existiert
* falls ja: An Client senden und fertig
* Grafik anhand der Parameter erzeugen
* Grafik in Datei speichern (Caching für Folgerequests)
* Grafik als HTTP-Ressource ausliefern
So long,
Martin
Ein Patriot ist jemand, der bereit ist, sein Land gegen seine Regierung zu verteidigen.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(