我们的Heroku托管的Django应用程序对用户上传到Amazon S3的图像进行简单的图像处理,主要是调整大小以便在网站上显示。为此,我们使用Pillow(Python Imaging Library的分支版本)在Celery任务中运行。
我们已经看到这个操作的时间从几分之一秒变成了半分钟甚至更长。我的最佳猜测是,我们现在经常遇到内存配额(R14)条件(只是因为应用程序更大),我天真地认为这会使调整大小特别缓慢。
因此,我考虑重新设计任务,使用外部的ImageMagick进程来进行处理,而不是使用内存中的PIL。我的想法是,这将至少保证在convert进程终止时释放调整大小期间使用的内存。
所以,我的问题是,这样做能帮助吗? ImageMagick的convert是否比Pillow具有更小的内存占用?
我们已经看到这个操作的时间从几分之一秒变成了半分钟甚至更长。我的最佳猜测是,我们现在经常遇到内存配额(R14)条件(只是因为应用程序更大),我天真地认为这会使调整大小特别缓慢。
因此,我考虑重新设计任务,使用外部的ImageMagick进程来进行处理,而不是使用内存中的PIL。我的想法是,这将至少保证在convert进程终止时释放调整大小期间使用的内存。
所以,我的问题是,这样做能帮助吗? ImageMagick的convert是否比Pillow具有更小的内存占用?