【问题标题】:High memory usage using PHP image resize/crop build in methods使用 PHP 图像调整大小/裁剪内置方法的高内存使用率
【发布时间】:2017-01-18 10:27:02
【问题描述】:

使用 imagecreatefromjpeg()imagecrop()imagecopyresampled() 等 PHP 函数裁剪和调整图像大小时,您会收到有关内存使用率高的通知。

如果我在 CMS 中实现这个裁剪模块,假设有 50 个人同时调用裁剪函数:内存使用量是否会乘以 50,从而导致服务器内存资源过载?

如果是这样,将请求排队或防止过载的好方法是什么?

【问题讨论】:

    标签: php memory resize crop


    【解决方案1】:

    虽然这可能不是您问题的直接答案,但根据我的经验,在另一台服务器上处理图像处理总是更好,因为您不希望单个用户用几张图像杀死整个网络服务器。

    如果您在不同的服务器上处理您的图像并且它死了,最糟糕的情况是图像将返回 404,但网络服务器本身将继续正常运行。

    无论如何,我肯定会推荐使用 ImageMagick 之类的库。它更容易使用,我相信你可以设置它不能超过的内存限制。

    到目前为止,我发现的图像处理的最佳方法是 AWS Lambda。您可以轻松编写一个无服务器 nodeJS 脚本来下载您的图像,对其进行任何修改并将其上传回您的服务器。除非您每天需要处理数千张图像,否则您几乎可以免费运行它,并且它可以处理多达 100 个同时调用(它基本上一次启动多达 100 个服务器),因此理论上它可以比您快 100 倍必须将您的请求排队。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-27
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 2016-04-04
      相关资源
      最近更新 更多