首页 > 解决方案 > Ruby 2.1.5p273 与内存增长/泄漏的时间比较?

问题描述

我花了一周的时间来弄清楚为什么我的一个 ruby​​ 脚本在内存中增长。我找到了罪魁祸首,但我不知道为什么它在一种情况下会在内存中增长,而在另一种情况下却没有:

我有一个简单的永恒循环,其中包含 Time 对象的条件:

i        = 0
lastTry = Time.now()

until i == 5    
  if (lastTry + 0.75) <  Time.now
    puts '.'
    lastTry = Time.now()
  end    
end

这将产生一个进程,该进程将占用内存,直到我的 ram 已满,最终我的内核将停止允许我分叉或在某些时候出现恐慌。对我的客户不利。

如果我用这个替换我的 if:

if ((Time.now() - lastTry) * 1000.0) > 750.0

它不会再吃记忆了。

-> 如评论中所述,我可以确认这与我的客户环境中使用的过时版本的 ruby​​ 有关。

标签: rubymemory-managementtime

解决方案


推荐阅读