2010-01-13 19 views
8

Quiero usar la biblioteca GD en mi script PHP para generar una pequeña miniatura de una imagen grande al azar del servidor externo. Cada vez que se llama a la página, la biblioteca de GD regenerará una miniatura y la mostrará.¿La biblioteca de GD usa mucha memoria?

¿Disminuirá la velocidad del servidor o consumirá una cantidad inusual de memoria?

+0

Regenerar una miniatura lleva el tiempo del servidor.La única forma de saber si lo hace "demasiado lento" o no es probarlo y verlo. Además, "memoria" y "velocidad" son dos conceptos completamente diferentes. –

Respuesta

1

Asegúrese de que disminuirá la velocidad del servidor, también depende del tamaño de la imagen que está utilizando. ¿por qué no solo guardas la imagen en miniatura?

0

Si genera una nueva miniatura cada carga de página, tomará un tiempo de procesamiento adicional. Dependiendo de la cantidad de imágenes que está reproduciendo y de sus tamaños originales, es posible que note lentitud o no. Si de todos modos puede crear la miniatura en la primera página cargada y guardarla, y cargar la versión creada previamente para otras cargas de página, estará mejor.

7

GD usa mucha memoria. Carga la imagen en la memoria por completo y la descomprime, por lo que necesitará al menos 32 bits por píxel. Una imagen con el tamaño 800 x 600 hace entonces utilizar hasta:

800 * 600 * 32 bits = 15,4 megabits = 2 MB

Esto es sólo para cargar la imagen. He oído que usará el doble de esto si lo cambia de tamaño, y si sus imágenes son aún más grandes, habrá más memoria.

Debería considerar almacenar en caché sus miniaturas, por lo que solo deben generarse una vez (¡esto también acelerará la página para sus visitantes!).

También leí ahora que está cargando las imágenes de un servidor externo, en cuyo caso REALMENTE debe almacenar en caché la imagen porque, de lo contrario, los visitantes tienen que esperar que USTED descargue la imagen completa primero. Esto empeora aún más si el servidor externo está caído o sobrecargado y sus visitantes tendrán que esperar un tiempo de espera (esto parecerá que su servicio es lento). Además de esto, perderás mucho ancho de banda si descargas la imagen cada vez que un usuario solicita una miniatura.


Desde GD utiliza tanta memoria, puede ser útil para generar las imágenes en miniatura en lugar utilizando la extensión imagick. ImageMagick escala mucho mejor con respecto al consumo de memoria y también es muy rápido (pero aún debe almacenar en caché las imágenes, por las razones indicadas anteriormente).

+1

+1 por * "ImageMagick escala mucho mejor con respecto al consumo de memoria" *, ¡esa es la información clave que debe tener en negrita! Puedes borrar el resto. :-) – TMS

1

Cualquier tipo de procesamiento de imágenes puede requerir mucha memoria.

Si puede almacenar en caché estas imágenes para no regenerarlas con cada golpe en la página, sería una gran jugada.

Una biblioteca de PHP que se ocupa de una gran cantidad de este almacenamiento en caché para usted es phpThumb - es probable que sea ideal para tareas como estas.

http://phpthumb.sourceforge.net/

Cuestiones relacionadas