Pregunta

Para una aplicación web de alojamiento de imágenes:

Para mis imágenes almacenadas, ¿es factible crear miniaturas sobre la marcha usando PHP (o lo que sea), o debería guardar 1 o más miniaturas de diferentes tamaños en el disco y simplemente cargarlas?

Se agradece cualquier ayuda.

¿Fue útil?

Solución

Guarde las miniaturas en el disco.El procesamiento de imágenes requiere muchos recursos y, dependiendo del tamaño de la imagen, puede exceder el límite de memoria permitido predeterminado para php.Es menos preocupante si tiene su propio servidor en el que solo se ejecuta su aplicación, pero aún así se necesita mucha potencia de CPU y memoria para cambiar el tamaño de las imágenes.Si está considerando crear miniaturas sobre la marcha de todos modos, no tiene que cambiar mucho: en la primera solicitud, cree la miniatura a partir del archivo fuente, guárdela en el disco y en solicitudes posteriores simplemente léala del disco.

Otros consejos

yo suelo phppulgar, ya que es lo mejor de ambos mundos.Puede crear miniaturas sobre la marcha, pero almacena automáticamente las imágenes en caché para acelerar futuras solicitudes.Crea un bonito contenedor alrededor de las bibliotecas GD e ImageMagick.¡Digno de una mirada!

Sería mucho mejor almacenar en caché las miniaturas.Generarlos sobre la marcha sería muy agotador para el sistema.

Depende del patrón de uso del sitio, pero, básicamente, ¿cuántas veces esperas que se vea cada imagen?

En el caso de las miniaturas, lo más probable es que duren bastante tiempo (la imagen se carga una vez y nunca cambia, por lo que la miniatura tampoco cambia), por lo que generalmente vale la pena generarla cuando se carga la imagen completa. y guárdalos para más tarde.A menos que el sitio esté completamente muerto, serán vistos muchas (cientos o miles) de veces durante su vida útil y el disco es mucho más barato que la latencia en estos días.Por supuesto, esto también se vuelve más significativo a medida que aumenta la carga en el servidor.

Por el contrario, para algo como los gráficos de acciones que se actualizan cada hora (si no con mayor frecuencia), sería una situación en la que sería mejor crearlos sobre la marcha, para evitar perder tiempo de CPU generando constantemente imágenes que no el usuario alguna vez verá.

O, si quiere ser más sofisticado, puede optimizar para manejar cualquiera de los patrones de acceso generando las imágenes sobre la marcha la primera vez que se necesitan y luego mostrando la pregenerada después, hasta que los datos que se generan a partir de los cambios. momento en el que lo elimina para que se regenere la próxima vez que sea necesario.Pero eso sería excesivo para algo tan estático como las miniaturas, en mi opinión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top