るりまサーチ

最速Rubyリファレンスマニュアル検索!
228件ヒット [101-200件を表示] (0.142秒)
トップページ > クエリ:ruby[x] > クエリ:Ruby[x] > 種類:モジュール関数[x] > クエリ:E[x] > モジュール:ObjectSpace[x]

別のキーワード

  1. rbconfig ruby
  2. fiddle ruby_free
  3. fiddle build_ruby_platform
  4. rake ruby
  5. rubygems/defaults ruby_engine

検索結果

<< < 1 2 3 > >>

ObjectSpace.#count_objects_size(result_hash = nil) -> Hash (9126.0)

型ごとのオブジェクトサイズをバイト単位で格納したハッシュを返します。

...をバイト単位で格納したハッシュを返します。

@param result_hash 戻り値のためのハッシュを指定します。省略した場合は新
しくハッシュを作成します。result_hash の内容は上書き
されます。プロー...
...ます。特に T_DATA の合計値は正しくないでしょう。

//emlist[例][ruby]{
ObjectSpace
.count_objects_size
# => {:TOTAL=>1461154, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249, ...}
//}

@raise TypeError result_hash にハッシュ以外を指定した時に発生します。...
...戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。

本メソッドは C Ruby 以外では動作しません。...

ObjectSpace.#trace_object_allocations { ... } (9114.0)

与えられたブロック内でオブジェクトのトレースを行います。 

...のトレースを行います。 

//emlist[例][ruby]{
require 'objspace'

class C
include ObjectSpace

def foo
trace_object_allocations do
obj = Object.new
p "#{allocation_sourcefile(obj)}:#{allocation_sourceline(obj)}"
e
nd
e
nd
e
nd

C.new.foo #=> "objtrace.rb:8"
//}...

ObjectSpace.#count_nodes(result_hash = nil) -> Hash (6250.0)

ノードの種類ごとの数を格納したハッシュを返します。

...m result_hash 戻り値のためのハッシュを指定します。省略した場合は新
しくハッシュを作成します。result_hash の内容は上書き
されます。プローブ効果を避けるために使用します。

@raise TypeError resul...
...ッドは普通の Ruby プログラマ向けのメソッドではありません。パフォー
マンスやメモリ管理に興味のある C Ruby の開発者向けのものです。

//emlist[例][ruby]{
ObjectSpace
.count_nodes
# => {:NODE_METHOD=>2027, :NODE_FBODY=>1927, :NODE_CFUNC=>1798, ......
...}
//}

戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。

本メソッドは C Ruby 以外では動作しません。...

ObjectSpace.#memsize_of_all(klass = nil) -> Integer (6156.0)

すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位 で返します。

...メソッドは以下のような Ruby のコードで定義できます。

//emlist[例][ruby]{
def memsize_of_all klass = false
total = 0
ObjectSpace
.each_object{|e|
total += ObjectSpace.memsize_of(e) if klass == false || e.kind_of?(klass)
}
total
e
nd
//}

戻り値の内容は完全...
...くまでもヒ
ントとして扱う必要があります。特に T_DATA の値は正しくないでしょう。

また、同様に戻り値の内容は malloc されたメモリの合計でもない事に注意し
てください。

本メソッドは C Ruby 以外では動作しません。...

ObjectSpace.#define_finalizer(obj) {|id| ...} -> Array (6138.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。

...ックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するのは...
...い方の注意

以下は、define_finalizer の使い方の悪い例です。

//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace
.define_finalizer(self) {
puts "foo"
}
e
nd
e
nd
Foo.new
GC.start
//}

これは、渡された proc の self が obj を参照しつ
づけ...
...tempfile は、ファイナライザの使い方の
良い例になっています。これは、クラスのコンテキストで Proc を
生成することで上記の問題を回避しています。

//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
e
nd
def...

絞り込み条件を変える

ObjectSpace.#define_finalizer(obj, proc) -> Array (6138.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。

...ックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するのは...
...い方の注意

以下は、define_finalizer の使い方の悪い例です。

//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace
.define_finalizer(self) {
puts "foo"
}
e
nd
e
nd
Foo.new
GC.start
//}

これは、渡された proc の self が obj を参照しつ
づけ...
...tempfile は、ファイナライザの使い方の
良い例になっています。これは、クラスのコンテキストで Proc を
生成することで上記の問題を回避しています。

//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
e
nd
def...

ObjectSpace.#memsize_of(obj) -> Integer (6126.0)

obj が消費するメモリ使用量をバイト単位で返します。

...しくないでしょう。
2.2 以降では RVALUE のサイズを含んだ結果を返します。

本メソッドは C Ruby 以外では動作しません。

//emlist[例][ruby]{
require 'objspace'

ObjectSpace
.memsize_of(10) # => 0
ObjectSpace
.memsize_of("12345" * 10) # => 91
//}...

ObjectSpace.#_id2ref(id) -> object (6114.0)

オブジェクト ID(BasicObject#__id__)からオブジェクトを得ます。

...ject#__id__)からオブジェクトを得ます。

@param id 取得したいオブジェクトの ID を整数で指定します。

@raise RangeError 対応するオブジェクトが存在しなければ発生します。

//emlist[例][ruby]{
a = "hoge"
p ObjectSpace._id2ref(a.__id__) #=> "hoge...

ObjectSpace.#allocation_sourcefile(object) -> String (6114.0)

objectの元となったソースファイル名を返します。

...objectの元となったソースファイル名を返します。

@param object 元となるソースファイル名を取得したいobjectを指定します。
@return objectの元となるソースファイル名を返します。存在しない場合はnilを返します。

//emlist[例:test....
...合][ruby]{
require 'objspace'

ObjectSpace
::trace_object_allocations_start
obj = Object.new
puts "file:#{ObjectSpace::allocation_sourcefile(obj)}" # => file:test.rb
ObjectSpace
::trace_object_allocations_stop
//}

@see ObjectSpace.#trace_object_allocations_start,
ObjectSpace
.#trace_object_all...
<< < 1 2 3 > >>