使用线程时,ruby 内存使用量永远增长

标签 ruby

操作系统:Windows7 32位 主内存:4GB ruby -v : ruby​​ 1.8.6 (2008-08-11 补丁级别 287) [i386-mswin32]

# 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.. 请..帮助我!!

最佳答案

ruby 1.9 中有文件读取修复。我编写的读取大量数据的脚本在 ruby​​1.9 上运行速度提高了 100 倍。请尽可能升级,这是值得的。

关于使用线程时,ruby 内存使用量永远增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830285/

相关文章:

ruby - Ruby中具有相同名称和不同参数的方法(方法重载)

Ruby:产量在可枚举范围内

ruby-on-rails - 在每次 rake 执行之前调用的通用方法

ruby-on-rails - 获取自己的IP地址

ruby - 在单例类上定义的方法中 self 的值

ruby - Ruby 中的时间 ISO 8601

ruby-on-rails - 计算 table 的大小并设置为 cucumber capybara

java - 无法将 csv 数据加载到 Elasticsearch,翻译问题

c - ruby 内联 : Error: too few arguments to function

ruby-on-rails - 出现相同的 Ruby 字符串不相等,为什么?