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のサンプルコード動作しない