php - GD 库是否使用大量内存?

标签 php gd

我想在我的 PHP 脚本中使用 GD 库从外部服务器生成随机大图片的小缩略图。每次调用页面时,GD库都会重新生成一个缩略图并显示出来。

这会降低服务器速度或占用异常多的内存吗?

最佳答案

GD 占用大量内存。它将图像完全加载到内存中并解压缩,因此每个像素至少需要 32 位。尺寸为 800 x 600 的图像然后用完:

800 * 600 * 32 位 = 15.4 兆位 = 2 MB

这只是加载图像。我听说如果你调整大小,它会使用两倍的内存,如果你的图像更大,它会占用更多的内存。

您真的应该考虑缓存您的缩略图,这样它们只需生成一次(这也会为您的访问者加快页面速度!)。

我现在还了解到您正在从外部服务器加载图像,在这种情况下您真的必须缓存图像,否则您的访问者必须等待您先下载整个图像。如果外部服务器停机或过载,情况会变得更糟,您的访问者将不得不等待超时(这看起来像是您的服务很慢)。除此之外,如果每次用户请求缩略图时都下载图像,您将浪费大量带宽。


由于 GD 使用大量内存,因此使用 IMagick 扩展生成缩略图可能是值得的。 ImageMagick 确实在内存消耗方面做得更好,而且速度也非常快(但出于上述原因,您仍应缓存图像)。

关于php - GD 库是否使用大量内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2060246/

相关文章:

php - 如何将用户输入的特定元素与数据库进行匹配? -php/mysql/ajax

php - 如何从一张表中提取大量多行?

php - wordpress posts_orderby 过滤器与插件中的自定义表

php - 如何确定我是否安装了 gd 库或 imagemagick?

php - 使用 PHP GD 计算文本宽度

PHP Swatch 下载,只生成 2 种颜色?

php - 将类作为方法的集合而没有属性是否可以?

php - 从数据库中存储的 NSArray 中删除字符

php - 使用 PHP 将图像中的颜色替换为另一种颜色

Php Gd 旋转图像