我想在我的PHP脚本中使用GD库从外部服务器生成随机大图片的小缩略图。每次调用页面时,GD库都会重新生成缩略图并显示它。
这会降低服务器速度还是耗尽不寻常的内存量?
答案 0 :(得分:7)
800 * 600 * 32位= 15.4兆位= 2 MB
这仅用于加载图像。我听说如果你进行大小调整就会使用它的两倍,如果你的图像更大,它将会有更多的记忆。
你应该考虑缓存你的缩略图,这样它们只需要生成一次(这也会加快访问者的页面速度!)。
我现在也读到您正在从外部服务器加载图像,在这种情况下,您真的必须缓存图像,否则您的访问者必须等待您首先下载整个图像。如果外部服务器出现故障或过载,您的访问者将不得不等待超时(这看起来像是您的服务很慢),情况会更糟。除此之外,如果每次用户请求缩略图时下载图像,都会浪费大量带宽。
由于GD使用了如此多的内存,因此使用IMagick扩展来生成缩略图可能是值得的。 ImageMagick在内存消耗方面做得更好,而且速度也非常快(但由于上述原因,你仍然应该缓存图像)。
答案 1 :(得分:1)
答案 2 :(得分:1)
取决于你正在做什么,但为什么不亲自尝试:
答案 3 :(得分:1)
任何类型的图像处理都可能是内存密集型的。
如果您可以缓存这些图片,以便在每次点击页面时都不重新生成它们,那将是一个很好的举措。
一个处理大量缓存的PHP库是phpThumb - 它可能是这类任务的理想选择。
答案 4 :(得分:0)
如果您在每次加载页面时生成新缩略图,则需要额外的处理时间。根据您缩略图像的数量以及原始尺寸,您可能会或可能不会注意到缓慢。无论如何,你可以在第一页加载时创建缩略图并保存它,并为其他页面加载加载预先创建的版本,你会更好。