[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3600

From: "bash0C7r (Toshiaki Koshiba)" <redmine@r...>
Date: Mon, 18 Mar 2013 20:23:13 +0900
Subject: [ruby-reference-manual:3600] [るりまプロジェクト - Bug #8112][Open] method/ObjectSpace/m/memsize_of_all.htmlのサンプルコード動作しない


Issue #8112 has been reported by bash0C7r (Toshiaki Koshiba).

----------------------------------------
Bug #8112: method/ObjectSpace/m/memsize_of_all.htmlのサンプルコード動作しない
https://bugs.ruby-lang.org/issues/8112

Author: bash0C7r (Toshiaki Koshiba)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
reporter: 
ruby_version: 


=begin

((<URL:http://doc.ruby-lang.org/ja/1.9.3/method/ObjectSpace/m/memsize_of_all.html>))に記載のサンプルコードが1.9.3,2.0.0で試したところ、ObjectSpace.#each_objectsが見つからず、動作しませんでした。

((<URL:https://github.com/ruby/ruby/blob/ruby_2_0_0/gc.c#L4507>))に定義されているObjectSpace.#each_objectを用いることで動作しました。

=== 1.9.3

 $ ruby -v
 ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]
 $ irb
 irb(main):001:0> require 'objspace'
 => true
 irb(main):002:0> def memsize_of_all klass = false
 irb(main):003:1>   total = 0
 irb(main):004:1>   ObjectSpace.each_objects{|e|
 irb(main):005:2*     total += ObjectSpace.memsize_of(e) if klass == false || e.kind_of?(klass)
 irb(main):006:2>   }
 irb(main):007:1>   total
 irb(main):008:1> end
 => nil
 irb(main):009:0> memsize_of_all
 NoMethodError: undefined method `each_objects' for ObjectSpace:Module
 	from (irb):4:in `memsize_of_all'
 	from (irb):9

=== 2.0.0

 $ ruby -v
 ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]
 $ irb
 irb(main):001:0> require 'objspace'
 => true
 irb(main):002:0> def memsize_of_all klass = false
 irb(main):003:1>   total = 0
 irb(main):004:1>   ObjectSpace.each_objects{|e|
 irb(main):005:2*     total += ObjectSpace.memsize_of(e) if klass == false || e.kind_of?(klass)
 irb(main):006:2>   }
 irb(main):007:1>   total
 irb(main):008:1> end
 => nil
 irb(main):009:0> memsize_of_all
 NoMethodError: undefined method `each_objects' for ObjectSpace:Module
 	from (irb):4:in `memsize_of_all'
 	from (irb):9

=== ObjectSpace.#each_objectに変更し動作

 irb(main):011:0> def memsize_of_all klass = false
 irb(main):012:1>   total = 0
 irb(main):013:1>   ObjectSpace.each_object{|e|
 irb(main):014:2*     total += ObjectSpace.memsize_of(e) if klass == false || e.kind_of?(klass)
 irb(main):015:2>   }
 irb(main):016:1>   total
 irb(main):017:1> end
 => nil
 irb(main):018:0> memsize_of_all
 => 3223064
 
=end



-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    3600 2013-03-18 12:23 [redmine@r...        ] [るりまプロジェクト - Bug #8112][Open] method/ObjectSpace/m/memsize_of_all.htmlのサンプルコード動作しない
      3601 2013-03-18 13:48 ┗[sho-h@n...          ] [るりまプロジェクト - Bug #8112][Closed] method/ObjectSpace/m/memsize_of_all.htmlのサンプルコード動作しない