165件ヒット
[1-100件を表示]
(0.132秒)
キーワード
-
allocation
_ sourcefile (11) -
allocation
_ sourceline (11) -
count
_ nodes (11) -
count
_ objects _ size (11) -
count
_ tdata _ objects (11) -
define
_ finalizer (22) -
each
_ object (11) -
garbage
_ collect (11) -
memsize
_ of _ all (11) -
reachable
_ objects _ from (11) -
trace
_ object _ allocations (11) -
trace
_ object _ allocations _ start (11) -
trace
_ object _ allocations _ stop (11) -
undefine
_ finalizer (11)
検索結果
先頭5件
-
ObjectSpace
. # define _ finalizer(obj) {|id| . . . } -> Array (18301.0) -
obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。
...ロックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するの......。proc は obj の回収時に obj の ID を引数として実行されます。
=== 使い方の注意
以下は、define_finalizer の使い方の悪い例です。
//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end
end......Foo.new
GC.start
//}
これは、渡された proc の self が obj を参照しつ
づけるため。そのオブジェクトが GC の対象になりません。
tempfile は、ファイナライザの使い方の
良い例になっています。これは、クラスのコンテキストで Pro... -
ObjectSpace
. # define _ finalizer(obj , proc) -> Array (18301.0) -
obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。
...ロックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するの......。proc は obj の回収時に obj の ID を引数として実行されます。
=== 使い方の注意
以下は、define_finalizer の使い方の悪い例です。
//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end
end......Foo.new
GC.start
//}
これは、渡された proc の self が obj を参照しつ
づけるため。そのオブジェクトが GC の対象になりません。
tempfile は、ファイナライザの使い方の
良い例になっています。これは、クラスのコンテキストで Pro... -
ObjectSpace
. # undefine _ finalizer(obj) -> object (18301.0) -
obj に対するファイナライザをすべて解除します。 obj を返します。
...//emlist[例][ruby]{
class Sample
def Sample.callback
proc {
puts "finalize"
}
end
def initialize
ObjectSpace.define_finalizer(self, Sample.callback)
end
def undef
ObjectSpace.undefine_finalizer(self)
end
end
Sample.new
GC.start
# => finalize
Sample.new
sample.u......ndef
GC.start
# ※何も出力されない
//}
@see ObjectSpace.#define_finalizer... -
ObjectSpace
. # allocation _ sourcefile(object) -> String (12201.0) -
objectの元となったソースファイル名を返します。
...合はnilを返します。
//emlist[例:test.rbというファイルで下記のスクリプトを実行した場合][ruby]{
require 'objspace'
ObjectSpace::trace_object_allocations_start
obj = Object.new
puts "file:#{ObjectSpace::allocation_sourcefile(obj)}" # => file:test.rb
ObjectSpace::trac......e_object_allocations_stop
//}
@see ObjectSpace.#trace_object_allocations_start,
ObjectSpace.#trace_object_allocations_stop... -
ObjectSpace
. # allocation _ sourceline(object) -> Integer (12201.0) -
objectの元となったソースファイルの行番号を返します。
...場合はnilを返します。
//emlist[例][ruby]{
require 'objspace'
ObjectSpace::trace_object_allocations_start
obj = Object.new
puts "line:#{ObjectSpace::allocation_sourceline(obj)}" # => line:4
ObjectSpace::trace_object_allocations_stop
//}
@see ObjectSpace.#trace_object_allocations_start,......ObjectSpace.#trace_object_allocations_stop... -
ObjectSpace
. # memsize _ of _ all(klass = nil) -> Integer (12201.0) -
すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位 で返します。
...すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位
で返します。
@param klass 指定したクラスのインスタンスのメモリ使用量を返します。省略
した場合はすべてのクラスのインスタンス......のような 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
end
//}
戻り値の内容は完全ではない事に注......くまでもヒ
ントとして扱う必要があります。特に T_DATA の値は正しくないでしょう。
また、同様に戻り値の内容は malloc されたメモリの合計でもない事に注意し
てください。
本メソッドは C Ruby 以外では動作しません。... -
ObjectSpace
. # trace _ object _ allocations { . . . } (12201.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)}"
end
end
end
C.new.foo #=> "objtrace.... -
ObjectSpace
. # trace _ object _ allocations _ start -> nil (12201.0) -
オブジェクト割り当てのトレースを開始します。
...オブジェクト割り当てのトレースを開始します。
@see ObjectSpace.#trace_object_allocations_stop... -
ObjectSpace
. # trace _ object _ allocations _ stop -> nil (12201.0) -
オブジェクト割り当てのトレースを終了します。
...オブジェクト割り当てのトレースを終了します。
トレースを終了する為には、ObjectSpace.#trace_object_allocations_startを呼んだ回数分だけこのメソッドを呼ぶ必要があります。
@see ObjectSpace.#trace_object_allocations_start... -
ObjectSpace
. # garbage _ collect(full _ mark: true , immediate _ sweep: true) -> nil (6301.0) -
どこからも参照されなくなったオブジェクトを回収します。 GC.start と同じです。
...。
GC.start と同じです。
@param full_mark マイナー GC を動作させる場合は false を、そうでない場
合は true を指定します。
@param immediate_sweep sweep を遅らせる(Lazy Sweep を行う)場合は false
を、そうでな...