GD使用了大量内存.它将图像完全加载到内存中并解压缩,因此每个像素至少需要32位.然后使用尺寸为800 x 600的图像:
800*600*32位= 15.4兆位= 2 MB
这只是加载图像.我听说如果你调整大小,它将使用这个的两倍,如果你的图像更大,它将更多的记忆.
您应该考虑缓存缩略图,这样它们只需生成一次(这样也可以加快访问者的页面速度!).
我现在还读到你正在从外部服务器加载图像,在这种情况下你真的必须缓存图像,否则你的访问者必须等待你先下载整个图像.如果外部服务器出现故障或过载,您的访问者将不得不等待超时(这看起来像是您的服务很慢),情况会更糟.除此之外,如果每次用户请求缩略图时下载图像,都会浪费大量带宽.
由于GD使用了如此多的内存,因此使用IMagick扩展来生成缩略图可能是值得的.ImageMagick在内存消耗方面做得更好,并且速度也非常快(但由于上述原因,您仍然应该缓存图像).