$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
$ irb
Memory usage right after IRB starts: 56MB
>> a = []
>> 1000.times { a << (1..50000).to_a.map { |i| "abc" }.join }
>> a = nil
Memory usage now: 244MB (as expected)
>> GC.start
Memory usage now: 146MB
Where did the rest of the memory go and why hasn't it been freed by the garbage collector?