在调整图像大小时使用Rmagic内存

时间:2011-08-29 23:43:35

标签: ruby ruby-on-rails-3 rubygems rmagick

调整图像大小时,内存使用量会增加40 MB到80 GB。这些文件大小不一,但没有一个大于300 kb。

经过一些分析后,我发现了有问题的方法。

def avatar_resize path
  img = Magick::Image.read(path).first
  img.resize_to_fit(200,200).to_blob
end

内存使用量的大幅增加是正常还是我需要做些其他事情来消除这些巨大的峰值?

2 个答案:

答案 0 :(得分:1)

您需要创建或合成图像吗?如果没有,你可以使用迷你魔法。 Rmagick与rails共享内存,而mini magick则为mogrify提供单独的内存分配。

答案 1 :(得分:1)

我可能会尝试避免使用.to_blob并将图像写入文件,因为这会将您的图像存储在内存中,因为这很可能会导致您的高内存使用量。