Ruby 2.1.5p273与内存增长/泄漏的时间比较?

Ruby 2.1.5p273与内存增长/泄漏的时间比较?,ruby,memory-management,time,Ruby,Memory Management,Time,我花了一周的时间来弄清楚为什么我的一个ruby脚本在内存中不断增长。我找到了罪魁祸首的线索,但我不明白为什么它会在一个案例中而不是在另一个案例中出现: 我有一个简单的永恒循环,在时间对象上有一个条件: i = 0 lastTry = Time.now() until i == 5 if (lastTry + 0.75) < Time.now puts '.' lastTry = Time.now() end end 它不会再吞噬记

我花了一周的时间来弄清楚为什么我的一个ruby脚本在内存中不断增长。我找到了罪魁祸首的线索,但我不明白为什么它会在一个案例中而不是在另一个案例中出现:

我有一个简单的永恒循环,在时间对象上有一个条件:

i        = 0
lastTry = Time.now()

until i == 5    
  if (lastTry + 0.75) <  Time.now
    puts '.'
    lastTry = Time.now()
  end    
end
它不会再吞噬记忆了


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

您是否知道您使用的Ruby版本已经有五年的历史,并且有几个补丁可用于该版本?最新的2.1.10是三年多前发布的。但即便如此,请记住,对旧Ruby 2.1的支持已经结束。我建议对当前版本的Ruby运行测试。我将在新的Ruby上进行测试。有时,在客户环境中,您无法选择当前的ruby版本。此外,我还修复了puts。好的,在ruby 1.9.3上,没有内存问题。在ruby 2.6.5上没有问题。在arm或i386平台上使用ruby 2.1.5->内存问题。这是ruby 2.1.5的问题,不是代码问题。很高兴知道。您是否知道您使用的Ruby版本已经有五年的历史,并且有几个补丁可用于该版本?最新的2.1.10是三年多前发布的。但即便如此,请记住,对旧Ruby 2.1的支持已经结束。我建议对当前版本的Ruby运行测试。我将在新的Ruby上进行测试。有时,在客户环境中,您无法选择当前的ruby版本。此外,我还修复了puts。好的,在ruby 1.9.3上,没有内存问题。在ruby 2.6.5上没有问题。在arm或i386平台上使用ruby 2.1.5->内存问题。这是ruby 2.1.5的问题,不是代码问题。很高兴知道。
if ((Time.now() - lastTry) * 1000.0) > 750.0