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

hallo,

ich wollte mal fragen ob jemand erfahrungswerte hat was
folgendes problem angeht:

ich habe eine seite auf der sehr viele imagecreatefromgd2() ausgeführt
werden müssen. ( im schlimmsten fall so 50 )
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.

macht das sinn ? hab ich da nen denkfehler ?
und könnte es wirklich schneller sein ?

bin für jeden tip dankbar.

uwi

  1. habe vergessen das die *.gd2 bilder als datei so 30 kb gross sind.
    das ist ja auch wichtig ..

    1. Hi,
      warum speicherst du die Bilder nicht im Dateisystem?
      Bilder in der Datenbank speichern hat nix.
      Oder sehen die Bilder immer anders aus? Wenn sie sich einmal täglich ändern, dann generiere Sie eben einmal am Tag neu.

      MfG

      --
      ie:{ fl:( br:^ va:) ls:[ fo:| rl:? n4:( ss:) de:] js:( ch:? sh:) mo:| zu:)
  2. 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