Tag: memory management

Ruby大数组和内存

我创建了一个大数组a ,其内存增长到~500 MB: a = [] t = Thread.new do loop do sleep 1 print “#{a.size} ” end end 5_000_000.times do a << [rand(36**10).to_s(36)] end puts "\n size is #{a.size}" a = [] t.join 在那之后,我“清除” a ,但是在我杀死进程之前,分配的内存没有改变。 我需要做些什么来删除从内存中分配给a所有这些数据吗?

Class#allocate及其用途

阅读http://www.seejohncode.com/2012/03/16/ruby-class-allocate/并查看分配方法之后: http : //www.ruby-doc.org/core-1.9.3 /Class.html#method-i-allocate我变得非常好奇。 Ruby的构建方式是我们没有为对象手动分配或释放空间,但我们有能力这样做。 为什么? Ruby手动分配对象有什么用? 我读过的文章展示了一个自定义初始化方法,但它的用途是如此有限?