【发布时间】:2016-07-30 22:38:15
【问题描述】:
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
$ irb
IRB 启动后的内存使用量:56MB
>> a = []
>> 1000.times { a << (1..50000).to_a.map { |i| "abc" }.join }
>> a = nil
现在的内存使用量:244MB(符合预期)
>> GC.start
现在的内存使用量:146MB
剩余的内存去了哪里,为什么垃圾收集器没有释放它?
【问题讨论】:
-
stackoverflow.com/questions/20385767/… 这[几乎]是同一个问题,原因完全一样。如果您同意我将此问题标记为重复问题,请告诉我。
-
问题有点不同,但答案完全一样。可以将其标记为重复,但我无法通过 Google 搜索它,因此即使答案相同,它也可以帮助某人通过此标题找到它。似乎简而言之,根本没有办法让 Ruby 释放剩余的内存,它宁愿被杀死。
-
将问题标记为重复并不会隐藏它。