Sven Rautenberg: bilddaten aus DB vs. imagecreatefromgd2() - zeit ?

Beitrag lesen

Moin!

ich habe eine seite auf der sehr viele imagecreatefromgd2() ausgeführt
werden müssen. ( im schlimmsten fall so 50 )

Das sind dann 50 Bildeinbindungen mittels <img> (oder als Hintergrundbild) in der HTML-Seite.

nun hab ich überlegt ob es schneller ginge wenn ich alle die
binärdaten die sich ja bei imagecreatefromgd2() ergeben einmal
in eine DB zu schreiben und diese einfach im kopf der seite
einmal auszulesen. so das ich statt imagecreatefromgd2() immer nur
des result der DB-abfrage ansprechen muss.

Das hilft dir nichts, die Bilder im Seitenkopf der HTML-Seite auszulesen und bereitzuhalten, weil für jedes einzelne Bild ein separates Skript gestartet wird, um genau EIN Bild vom Server abzuholen.

macht das sinn ? hab ich da nen denkfehler ?

Dein Denkfehler ist, dass dein HTML-Skript auch für Bilder zuständig sein könnte.

und könnte es wirklich schneller sein ?

Das läßt sich effektiv nur durch Testen herausfinden. Eines ist ganz klar: Wenn man sich wiederholende, aber immer zum gleichen Ergebnis führende Dinge zusammenfassen und das Resultat zwischenspeichern kann, damit die Wiederholungen nur noch von diesen Zwischenstand aus weiterarbeiten müssen, dann spart das natürlich ganz erheblich Rechenpower ein. Es wäre beispielsweise enorm entlastend, wenn man automatisch generierte Vorschaubilder einer Galerie zwischenspeichert und nur beim allerersten Abruf generiert.

Insofern bietet deine leider sehr allgemein gehaltene Beschreibung durchaus Potential für Verbesserungen - der Ansatz sollte aber eher dahin gehen, ob es möglich ist, statt der beständigen Arbeit der gdlib (mindestens die Wandlung vom gd2-Format in ein Webformat wie GIF, PNG oder JPG muß ja erfolgen) gleich das Bildresultat im fertigen Format zwischenzuspeichern und auszuliefern.

Es ist in meinen Augen nicht unbedingt sinnvoll, lediglich den Speicherort der gd2-Daten zu verändern. Und insbesondere hilft es dir wenig, im HTML-generierenden Skript irgendwelche Bildbearbeitungen zusammenzufassen, weil dieses Skript für die Bildauslieferung zu diesem Zeitpunkt ja gar nicht zuständig sein kann.

Es braucht also etwas mehr Input von dir, bevor ein vernünftiger Rat gegeben werden kann.

  • Sven Rautenberg