Helo,我无法成功在哈希中删除键后如何释放内存.当我从Hash中删除密钥时,内存不会被释放,也不会在GC.start手动调用之后.当从Hash中删除密钥并且这些对象在某处泄漏时,这种预期行为或GC是否不释放内存?如何删除Ruby中的Hash键并在内存中取消分配?
例:
irb(main):001:0> `ps -o rss= -p #{Process.pid}`.to_i
=> 4748
irb(main):002:0> a = {}
=> {}
irb(main):003:0> 1000000.times{|i| a[i] = "test #{i}"}
=> 1000000
irb(main):004:0> `ps -o rss= -p #{Process.pid}`.to_i
=> 140340
irb(main):005:0> 1000000.times{|i| a.delete(i)}
=> 1000000
irb(main):006:0> `ps -o rss= -p #{Process.pid}`.to_i
=> 140364
irb(main):007:0> GC.start
=> nil
irb(main):008:0> `ps -o rss= -p #{Process.pid}`.to_i
=> 127076
Run Code Online (Sandbox Code Playgroud)
PS:我使用ruby 1.8.7.我也试过ruby 1.9.2,但并不是更好.