我使用Merb和im开发Web应用程序,寻找一些安全稳定的图像处理库.我曾经在PHP中使用Imagick,然后移动到
ruby并开始使用RMagick.但是有一个问题.长时间运行的脚本导致内存泄漏.有几种解决方案存在,但我不知道哪一种是最稳定的.所以你怎么看?
现在,我的应用程序使用内部API,我用PHP编写来处理图像.它与其他应用程序一起在单独的服务器上运行,所以它不是一个大问题.但我认为它不是一个好的建筑.
无论如何,我会考虑任何实用的提示.
解决方法
我也遇到这个问题 – 解决办法是强制垃圾收集.
当您将图像变量重新分配到新图像时,只需使用GC.start来确保旧的引用从内存中释放.
在更高版本的RMagick,我也相信你也可以打电话摧毁!当你完成处理它的图像.
两者的组合可能会确保您被覆盖,但不能确定真实生活对性能的影响(我认为在大多数情况下可以忽略不计).
或者,您可以使用mini-magick这是ImageMagick命令行客户端的包装器.