我正在使用Merb开发Web应用程序,我正在寻找一些安全稳定的图像处理库.我以前在php中使用Imagick,然后转移到ruby并开始使用RMagick.但有一个问题.长时间运行的脚本导致内存泄漏.有几种解决方案存在,但我不知道哪一种最稳定.所以你怎么看?
现在,我的应用程序使用我编写的内部API来处理PHP中的图像.它与其他应用程序一起运行在单独的服务器上,因此它不是一个大问题.但我认为它不是一个好的架构.
无论如何,我会考虑任何实用技巧.
我创建了一个大数组a,其内存增长到约 500 MB:
a = []
t = Thread.new do
loop do
sleep 1
print "#{a.size} "
end
end
5_000_000.times do
a << [rand(36**10).to_s(36)]
end
puts "\n size is #{a.size}"
a = []
t.join
Run Code Online (Sandbox Code Playgroud)
之后,我“清除”了a,但直到我终止了进程,分配的内存才改变。我是否需要做一些特殊的事情才能a从内存中删除所有这些分配给的数据?