Foros del Web » Programando para Internet » PHP »

Duda sobre sobrecarga del servidor con GD

Estas en el tema de Duda sobre sobrecarga del servidor con GD en el foro de PHP en Foros del Web. Me gustaría empezar a utilizar la librería GD de PHP para redimensionar imágenes, ya que parece bastante fácil y una buena idea para adecuar el ...
  #1 (permalink)  
Antiguo 01/08/2006, 03:18
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 12 años
Puntos: 1
Duda sobre sobrecarga del servidor con GD

Me gustaría empezar a utilizar la librería GD de PHP para redimensionar imágenes, ya que parece bastante fácil y una buena idea para adecuar el tamaño y la calidad de una sola imagen para varias situaciones (por ejemplo, generar las miniaturas de las imágenes para una galería)

Utilizo este código para hacer la prueba (modificado directamente de uno de ejemplo del manual de PHP)

Código PHP:
<?php
// Variable que indica el archivo de la imagen
$filename 'CIMG0752.JPG';
// Content-type para el navegador
header('Content-type: image/jpeg');
// Se obtienen las dimensiones
list($width$height) = getimagesize($filename);
// Cargar la imagen
$thumb imagecreatetruecolor(4560);
$source imagecreatefromjpeg($filename);
// Redimensionar
imagecopyresampled($thumb$source00004560$width$height);
// Mostrar la nueva imagen
imagejpeg($thumb);
?>
Funciona verdaderamente bien, pero lo estoy probando en local y noto que cuando se ejecuta el script mi ordenador se resiente un poco (quizá son imaginaciones mías...), y es una equipo realmente potente...

Mi duda es: ¿cómo afectaría el uso masivo de este script a un servidor? ¿podría considerarse un abuso? ¿qué pasaría si lo que quiero es crear dinámicamente las miniaturas de 100 o 200 imágenes al mismo tiempo (osea, seguiditas, una detrás de otra...)?
  #2 (permalink)  
Antiguo 01/08/2006, 03:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Hola:

Yo uso un código similar en una galería con más de 1000 fotos, y no tengo problemas... quizás la imagen original tenga demasiado peso... Si está en la web debería estar optimizada...

Veo que accedes 2 veces al fichero, no sé si se mejoraría un poco con un solo acceso:

$source = imagecreatefromjpeg($filename);
$width = imagesx($source);
$height = imagesy($source);

Tal vez algún entendido de su opinión.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 01/08/2006, 07:53
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 12 años
Puntos: 1
Pues, ¡muchas gracias por la información!

Supongo que tienes razón en lo del código, lo rectificaré.
  #4 (permalink)  
Antiguo 01/09/2006, 08:34
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 12 años
Puntos: 1
A pasado algo de tiempo... pero sigo dándole vueltas a la librería GD. Dices que tienes una galería con más de 1000 fotos... ¿generas las miniaturas de las imágenes cada vez que un usuario entra a la galería?

He probado el sistema en vivo y parece que funciona muy bien, las imágenes se crean realmente rápido y con una calidad inmejorable. Pero tengo miedo de estar fastidiando al servidor y que me puedan prohibir de un momemto a otro el uso de esa función de una forma tan masiva...
  #5 (permalink)  
Antiguo 01/09/2006, 09:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Funciona verdaderamente bien, pero lo estoy probando en local y noto que cuando se ejecuta el script mi ordenador se resiente un poco (quizá son imaginaciones mías...), y es una equipo realmente potente...
Ese tipo de "dudas" debería evaluarlas con otro tipo de herramientas del sistema operativo que uses .. mira lo que consume la ejecución de tu aplicación (como pasa por el interprete de PHP . .revisa lo que consume este al ejecutar tu aplicación) .. Sobre la carga de proceso .. lo mismo.

Los procesos bajo "GD" .. por supuesto que consumen recursos del servidor .. Ahora, para decidirte si creas tus thubmnails "al vuelo" .. o los generas sólo cuando los "subas a tu servidor" .. debes evaluar algunas cosas:

1) Como subes tus imagenes al servidor: es controlado por un script PHP? (upload) .. o las subes por "FTP" u otros médios que no pasen por PHP?

2) Sólo generas un "thumbnail"? .. ningún otro proceso más personalizado .. por ejemplo que dejes al usuario que indique el "tamaño" del thumbnail a crear?

Según sean tus respuestas .. sobre todo de la 2a .. así se verá que tan viable será crear tus "miniaturas" al disco en lugar de generararlas en tiempo real (al vuelo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 01/09/2006, 09:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Hola:

Verás, este año cometí un error y estoy poniendo las imágenes en una base de datos, y no las pagino, y por eso puedes ver el funcionamiento con una página con más de 600 imágenes sin paginar (hay paginación pero hecha con javascript)... con más de 600 imagenes tarda un poco, pero funciona... Con muchas imágenes es preferible paginarlas, pero con un número discreto de imágenes puedes estar tranquilo...

La página en cuestión: Galería de Postales de la Costa del Sol (año 2006)

Pinchando en cualquier otra galería (menú superior) el comportamiento es mucho mejor... con un sistema paginado... puedes probar con la galería 2005 que tiene más de 500 y va bastante rápido y bien.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:51.