Dennis: getimagesize extrem langsam

Beitrag lesen

Hi Fritz,

nein, das hat damit nichts zu tun. Wir reden hier nicht über Millisekunden, sondern über Minuten!
Und auf manchen Servern klappt das auch (ohne erkennbaren Zeitverzug)

Dies kann diverse Gründe haben, welche man mit den von dir gegebenen Informationen nicht näher spezifizieren kann. Erst mal wäre es interessant zu wissen, auf wie viele Bilder du getimagesize() in deinem Script anwendest. Falls es sich um eine Art Bildergalerie handelt, dann werden es wohl ca. 50 Bilder sein. Geht man davon aus, dass jedes Bild 1 Sekunde zum Laden brauchst, so bist du mit 50 Sekunden Laufzeit schon deutlich über der Default-Maximallaufzeit von 30 Sekunden.

Desweiteren gilt es zu bedenken, dass Server unterschiedliche Anbindungen haben. Darunter versteht man die Geschwindigkeit, mit der ein Server an das Internet angeschlossen ist (einfach ausgedrückt). Ein Server mit 1 GBit/s Anbindung lädt die Daten natürlich deutlich schneller, also ein Server mit einer Anbindung von 10 MBit/s. Natürlich gilt diese Beschränkung sowohl für den Server, der getimagesize() verwendet, wie auch für den Server der die Bilder liefert. Es bringt dir nichts, wenn dein eigener Server super schnell ist, aber der Server von dem du die Bilder abrufst total langsam ist.

Letztendlich können es auch temporäre Probleme sein. Vielleicht ist dein Server grade mit anderen Arbeiten ausgelastet, vielleicht wird auf einem anderen Server, welcher sich im gleichen Rack mit deinem Server befindet, gerade ein Backup gefahren, sodass die Leitungen schon übermäßig ausgelastet sind. Kurz um, es gibt zig theoretische wie praktische Gründe, die dein langsames Script verursachen.

Du solltest dir also angewöhnen, die Größen für die Bilder zwischenzuspeichern, sodass du nicht bei jedem Seitenaufruf die Größe herausfinden musst. Im Idealfall musst du getimagesize() für jedes Bild nur ein einziges Mal aufrufen, nämlich dann, wenn das Bild neu zu deiner "Sammlung" hinzugekommen ist. Alternativ, verzichte darauf, die Größe der Bilder auszulesen. Wenn du eh nur die Größe in den img-Tag schreiben willst, wäre das wohl die sinnvollste Lösung, da die Browser das Bild automatisch in seiner Originalgröße auf der Webseite darstellen.

Viele Grüße,
  ~ Dennis.