# big.mkv file size : 1.45GB
ex1.rb
puts $$
File.open("D:/test/big.mkv", "rb") do |f|
while buff = f.read(4096)
end
end
sleep 1000
ex1.rb没问题!内存使用量约为19,756 KB。
但是...
ex2.rb
puts $$
th1 = Thread.new do
loop do
sleep 1
end
end
File.open("D:/test/big.mkv", "rb") do |f|
while buff = f.read(4096)
end
end
th1.join
ex2.rb 记忆用法不断增加......毕竟是1,937,948 KB
我必须使用Thread .. 请帮助我!!
答案 0 :(得分:1)
ruby 1.9中有文件读取修复。我编写的一个脚本读取大量数据,在ruby1.9上运行速度快了约100倍。如果可能请升级,这是值得的。