【发布时间】:2014-08-01 06:16:38
【问题描述】:
我们的 Heroku 托管的 Django 应用程序对我们的用户上传到 Amazon S3 的图像进行了一些简单的图像处理——主要是调整到我们将在网站上显示的大小。为此,我们使用 Pillow(Python Imaging Library 的分支),在 Celery 任务中运行。
我们已经看到此操作的时间从几分之一秒变为半分钟或更长时间。我对原因的最佳猜测是,我们现在经常遇到内存配额 (R14) 条件(只是因为应用程序更大),我天真地认为调整大小会特别慢。
所以我正在考虑重构任务以使用外部 ImageMagick 进程进行处理,而不是使用内存中的 PIL。想法是,这至少可以保证在convert 进程终止时释放调整大小期间使用的内存。
所以我的问题是,这会有帮助吗? ImageMagick 的 convert 会比 Pillow 占用更少的内存吗?
【问题讨论】:
-
也许将图像处理外包给 Uploadcare 或 Cloudinary 等第三方服务会更好?
标签: python django heroku imagemagick pillow