From: Kouhei S. <ko...@co...> - 2007-05-26 03:33:47
|
須藤です。 > この件って何かわかります? > > http://sourceforge.net/tracker/index.php?func=detail&aid=1724347&group_id=53614&atid=470969 彼が何をいわんとしているのか理解できていないのですが、彼のサ ンプルの最後に p :finished leaked_objects = Array.new 11.times{ |i| hash_objects=Hash.new{|h,k|h[k]=0} GC.start ObjectSpace.each_object{|obj| hash_objects[obj.class]+=1 } leaked_objects<<hash_objects if i==0 or i==10 } leaked_objects.each_with_index{|h,i| puts "LEAKED OBJECTS #{i}" h2 = leaked_objects[i+1] h2 = Hash.new{|h,k|h[k]=0} if not h2 h.each_pair{|k,v| puts "Leaked #{k}: #{h2[k]-v}" if (h2[k]-v)>0 } h2.each_pair{|k,v| puts "Leakdes #{k}: #{v-h[k]}" if (h[k] == 0) && (v != 0) } } をつけると LEAKED OBJECTS 0 Leaked Data: 10 Leaked Gtk::VBox: 10 Leaked Array: 11 Leaked Hash: 13 Leaked Proc: 13 Leaked String: 19 LEAKED OBJECTS 1 :finished LEAKED OBJECTS 0 Leaked Array: 1 Leaked Hash: 2 Leaked Proc: 2 LEAKED OBJECTS 1 となるので、リークしていないと思います。 こういうことじゃなかったらごめんなさい。 |