------ art_2082_16191446.1191928401674 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 2007/10/9, Mr_Tibs <tiberiu.motoc / gmail.com>: > Hi, > > I finished writing a fairly large Ruby application and I was careless > with cleaning up variables. My objects contain references to large > ActiveRecord objects (instance variables), and I wanted to make sure > that I don't specifically need to set these instance variables to nil > when they're not used anymore: as long as I set the parent object to > nil, since there will be no reference to its instance variables, the > parent object and its instance variable objects should be removed by > the GC. Is this correct? Correct. Ruby does mark and sweep CG AFAIK. > For example, I might have this program: > > class Blah > > attr_accessor :arr > > def initialize > @arr rray.new(10000000, 'TEST') > end > > end > > while (true) > b lah.new > sleep 5 > end > > I noticed that the memory on my machine only goes up at the beginning > of the program, and then stays constant. I can only conclude that each > time the loop executes, the old b.arr becomes unreferenced and is > garbage collected and that the new b.arr is allocated (thus memory > usage is the same). Correct again. You can view the effect with the script attached. > I just need someone to confirm this, since my program freezes after > running more than 24hours and I can't find the (memory) leakage. You probably still hold on to more memory than you think. Kind regards robert ------ art_2082_16191446.1191928401674 Content-Type: application/x-ruby; name="finalizer.rb" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="finalizer.rb" X-Attachment-Id: f_f7kb9gqn IyFydWJ5CgpyZXF1aXJlICdzZXQnCgpjbGFzcyBGb28KICBkZWYgaW5pdGlhbGl6ZQogICAgQHMg PSAieCIgKiAxMDBfMDAwCiAgZW5kCmVuZAoKbWF4ID0gMAppZHMgPSBTZXQubmV3CgoxMF8wMDAu dGltZXMgZG8gfGl8CiAgZiA9IEZvby5uZXcKICBpZHMgPDwgZi5vYmplY3RfaWQKICBPYmplY3RT cGFjZS5kZWZpbmVfZmluYWxpemVyKGYsIGxhbWJkYSB7fG9pZHwgaWRzLmRlbGV0ZSBvaWR9KQog ICMgdGhpcyBpcyBpbXBvcnRhbnQgdG8gcmVsZWFzZSB0aGUgcmVmZXJlbmNlOgogIGYgPSBuaWwK ICBwcmludGYgInN0ZXAgJTEwZCAgc2l6ZSAlNWRcbiIsIGksIGlkcy5zaXplCiAgbWF4ID0gaWRz LnNpemUgaWYgaWRzLnNpemUgPiBtYXgKZW5kCgpwcmludGYgIm1heCAlNWRcbiIsIG1heAo------ art_2082_16191446.1191928401674--