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).
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. –