【问题标题】:Which has the better memory footprint, ImageMagick or Pillow (PIL)?ImageMagick 或 Pillow (PIL) 哪个具有更好的内存占用?
【发布时间】: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


【解决方案1】:

我有过类似的经历(在 Java 中),这可能有助于做出决定。

从 Java 调用 ImageMagick 库绑定(使用 JNI)似乎是个好主意,但结果却导致大量内存泄漏。

我们最终转移到 ImageMagick 的外部命令行调用 - 由于您提到的原因,它工作得更好 - 保证内存释放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多