ruby - 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 有关。
解决方案
推荐阅读
- nginx - 错误:horizontalpodautoscalers.autoscaling“nginx-1-hpa”已经存在
- python-3.x - 子类化 rv_continuous 时的溢出错误
- c# - 使用 WebClient UploadFile 线程被中止
- hibernate - Querydsl Projection.bean 找不到设置器
- debugging - VS2017调试错误:评估函数超时,需要中止...
- oracle - 联合投掷错误
- r - 来自维基百科的 R 图:数字被错误地解释为因素
- java - 错误:尝试在空对象引用上调用虚拟方法“android.content.Context.getResources()”
- javascript - Object.entries() 确实为 Maps 返回一个空数组
- mysql - 插入具有最高值的列的列名