2010-01-13 8 views
8

Ich möchte GD-Bibliothek in meinem PHP-Skript verwenden, um ein kleines Vorschaubild eines zufälligen großen Bildes von einem externen Server zu generieren. Jedes Mal, wenn die Seite aufgerufen wird, erstellt die GD-Bibliothek ein Vorschaubild neu und zeigt es an.Verwendet die GD-Bibliothek viel Speicher?

Wird dies den Server verlangsamen oder eine ungewöhnliche Menge an Speicher verbrauchen?

+0

ein Thumbnail Regenerieren nimmt Serverzeit.Die einzige Möglichkeit zu wissen, ob es "zu langsam" ist oder nicht, ist es auszuprobieren und zu sehen. Auch "Gedächtnis" und "Geschwindigkeit" sind zwei völlig unterschiedliche Konzepte. –

Antwort

1

Sicher wird es den Server verlangsamen es hängt auch von der Größe des Bildes, das Sie verwenden. Warum speicherst du nicht einfach das Thumbnail-Bild?

0

Wenn Sie bei jedem Laden der Seite eine neue Miniaturansicht erstellen, wird zusätzliche Verarbeitungszeit benötigt. Abhängig von der Menge der Bilder, die Sie thumbnailing, sowie ihre ursprünglichen Größen, können Sie oder nicht, Langsamkeit bemerken. Wenn es trotzdem möglich ist, das Thumbnail auf der ersten Seite zu erstellen, zu laden und zu speichern und die vordefinierte Version für andere Seitenladevorgänge zu laden, geht es Ihnen besser.

7

GD verwenden viel Speicher. Es lädt das Bild vollständig in den Speicher und dekomprimiert es, so dass Sie mindestens 32 Bit pro Pixel benötigen. Ein Bild mit der Größe 800 x 600 dann verwenden up:

800 * 600 * 32 Bit = 15,4 Megabit = 2 MB

Dies ist nur das Bild zu laden. Ich habe gehört, dass es das Doppelte verwenden wird, wenn Sie die Größe ändern, und wenn Ihre Bilder noch größer sind, wird es noch mehr Speicher sein.

Sie sollten wirklich überlegen, Ihre Thumbnails zu cachen, damit sie nur einmal generiert werden müssen (dies beschleunigt die Seite auch für Ihre Besucher!).

Ich lese jetzt auch, dass Sie die Bilder von einem externen Server laden, in diesem Fall müssen Sie WIRKLICH das Bild zwischenspeichern, sonst müssen Ihre Besucher auf SIE warten, um das gesamte Bild zuerst herunterzuladen. Dies wird noch schlimmer, wenn der externe Server heruntergefahren oder überlastet ist und Ihre Besucher auf eine Zeitüberschreitung warten müssen (dies sieht so aus, als ob Ihr Dienst langsam ist). Darüber hinaus verschwenden Sie viel Bandbreite, wenn Sie das Bild jedes Mal herunterladen, wenn ein Benutzer eine Miniaturansicht anfordert.

Da GD so viel Speicher verwendet, kann es sich lohnen, stattdessen die Vorschaubilder mit der Erweiterung IMagick zu erstellen. ImageMagick skaliert viel besser in Bezug auf Speicherverbrauch und ist auch sehr schnell (aber Sie sollten die Bilder aus den oben genannten Gründen immer noch zwischenspeichern).

+1

+1 für * "ImageMagick skaliert viel besser in Bezug auf den Speicherverbrauch" *, das sind die wichtigsten Informationen, die Sie fett gedruckt haben sollten! Sie können den Rest löschen. :-) – TMS

1

Hängt davon ab, was Sie mit ihm tun, aber warum nicht versuchen, für sich selbst:

1

Jede Art von Bildverarbeitung ist wahrscheinlich speicherintensiv.

Wenn Sie diese Bilder zwischenspeichern können, um sie nicht mit jedem Treffer auf der Seite zu regenerieren, wäre das ein großartiger Schachzug.

Eine PHP-Bibliothek, die eine Menge von diesem Caching für Sie erledigt, ist phpThumb - es ist wahrscheinlich ideal für solche Aufgaben.

http://phpthumb.sourceforge.net/