ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- PKq]|>memsize_of-c.rinu[U:RDoc::AnyMethod[iI"memsize_of:ETI"ObjectSpace::memsize_of;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I")Return consuming memory size of obj.;To:RDoc::Markup::BlankLineo; ; [I"JNote that the return size is incomplete. You need to deal with this ;TI"Oinformation as only a *HINT*. Especially, the size of +T_DATA+ may not be ;TI" correct.;T@o; ; [I"6This method is only expected to work with C Ruby.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I",ObjectSpace.memsize_of(obj) -> Integer ;T0[I" (p1);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]Ö0 cdesc-ObjectSpace.rinu[U:RDoc::NormalModule[iI"ObjectSpace:ET@0o:RDoc::Markup::Document: @parts[o;;[: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0o;;[ o:RDoc::Markup::Paragraph;[I"JThe objspace library extends the ObjectSpace module and adds several ;TI"9methods to get internal statistic information about ;TI"object/memory management.;To:RDoc::Markup::BlankLineo; ;[I"NYou need to require 'objspace' to use this extension module.;T@o; ;[ I"EGenerally, you *SHOULD NOT* use this library if you do not know ;TI"Iabout the MRI implementation. Mainly, this library is for (memory) ;TI"Gprofiler developers and MRI developers who need to know about MRI ;TI"memory usage.;T; I"ext/objspace/objspace.c;T; 0o;;[ o; ;[I":The ObjectSpace module contains a number of routines ;TI"Ithat interact with the garbage collection facility and allow you to ;TI"2traverse all living objects with an iterator.;T@o; ;[I"QObjectSpace also provides support for object finalizers, procs that will be ;TI"Gcalled when a specific object is about to be destroyed by garbage ;TI"collection.;T@o:RDoc::Markup::Verbatim;[ I" a = "A" ;TI" b = "B" ;TI" ;TI"QObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" }) ;TI"QObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" }) ;T: @format0o; ;[I"_produces:_;T@o; ;[I" Finalizer two on 537763470 ;TI"Finalizer one on 537763480;T;0; I" gc.c;T; 0; 0; 0[[[[[I" class;T[[: public[[I" _id2ref;TI" gc.c;T[I"allocation_class_path;TI""ext/objspace/object_tracing.c;T[I"allocation_generation;T@H[I"allocation_method_id;T@H[I"allocation_sourcefile;T@H[I"allocation_sourceline;T@H[I"count_nodes;TI"ext/objspace/objspace.c;T[I"count_objects;T@E[I"count_objects_size;T@S[I"count_tdata_objects;T@S[I"define_finalizer;T@E[I"each_object;T@E[I"garbage_collect;T@E[I"memsize_of;T@S[I"memsize_of_all;T@S[I"reachable_objects_from;T@S[I" reachable_objects_from_root;T@S[I"trace_object_allocations;T@H[I"#trace_object_allocations_clear;T@H[I")trace_object_allocations_debug_start;T@H[I"#trace_object_allocations_start;T@H[I""trace_object_allocations_stop;T@H[I"undefine_finalizer;T@E[:protected[[: private[[I" instance;T[[;[[;[[;[[[U:RDoc::Context::Section[i0o;;[; 0; 0[ @ @@9I"lib/cgi/session.rb;TI"lib/weakref.rb;T@9cRDoc::TopLevelPKq]Άw reachable_objects_from_root-c.rinu[U:RDoc::AnyMethod[iI" reachable_objects_from_root:ETI"-ObjectSpace::reachable_objects_from_root;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::List: @type: LABEL: @items[o:RDoc::Markup::ListItem: @label[I"MRI specific feature;T; [o:RDoc::Markup::Paragraph; [I",Return all reachable objects from root.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I"5ObjectSpace.reachable_objects_from_root -> hash ;T0[I"();T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]8allocation_sourceline-c.rinu[U:RDoc::AnyMethod[iI"allocation_sourceline:ETI"'ObjectSpace::allocation_sourceline;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"GReturns the original line from source for from the given +object+.;To:RDoc::Markup::BlankLineo; ; [I"FSee ::trace_object_allocations for more information and examples.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"-allocation_sourceline(object) -> string ;T0[I" (p1);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]ƌ://count_tdata_objects-c.rinu[U:RDoc::AnyMethod[iI"count_tdata_objects:ETI"%ObjectSpace::count_tdata_objects;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"+Counts objects for each +T_DATA+ type.;To:RDoc::Markup::BlankLineo; ; [I"QThis method is only for MRI developers interested in performance and memory ;TI"usage of Ruby programs.;T@o; ; [I"It returns a hash as:;T@o:RDoc::Markup::Verbatim; [ I"A{RubyVM::InstructionSequence=>504, :parser=>5, :barrier=>6, ;TI"D :mutex=>6, Proc=>60, RubyVM::Env=>57, Mutex=>1, Encoding=>99, ;TI"B ThreadGroup=>1, Binding=>1, Thread=>1, RubyVM=>1, :iseq=>1, ;TI"@ Random=>1, ARGF.class=>1, Data=>1, :autoload=>3, Time=>2} ;TI"5# T_DATA objects existing at startup on r32276. ;T: @format0o; ; [I"LIf the optional argument, result_hash, is given, it is overwritten and ;TI"6returned. This is intended to avoid probe effect.;T@o; ; [I"QThe contents of the returned hash is implementation specific and may change ;TI"in the future.;T@o; ; [I"=In this version, keys are Class object or Symbol object.;T@o; ; [I"OIf object is kind of normal (accessible) object, the key is Class object. ;TI"LIf object is not a kind of normal (internal) object, the key is symbol ;TI"-name, registered by rb_data_type_struct.;T@o; ; [I"6This method is only expected to work with C Ruby.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I" hash ;T0[I"(p1 = v1);T@0FI"ObjectSpace;TcRDoc::NormalModule00PKq]% UU"trace_object_allocations_stop-c.rinu[U:RDoc::AnyMethod[iI""trace_object_allocations_stop:ETI"/ObjectSpace::trace_object_allocations_stop;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"%Stop tracing object allocations.;To:RDoc::Markup::BlankLineo; ; [I"KNote that if ::trace_object_allocations_start is called n-times, then ;TI"Mtracing will stop after calling ::trace_object_allocations_stop n-times.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"#trace_object_allocations_stop ;T0[I"();T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]A^^allocation_generation-c.rinu[U:RDoc::AnyMethod[iI"allocation_generation:ETI"'ObjectSpace::allocation_generation;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"AReturns garbage collector generation for the given +object+.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I" class B ;TI" include ObjectSpace ;TI" ;TI" def foo ;TI"% trace_object_allocations do ;TI" obj = Object.new ;TI"; p "Generation is #{allocation_generation(obj)}" ;TI" end ;TI" end ;TI" end ;TI" ;TI"%B.new.foo #=> "Generation is 3" ;T: @format0o; ; [I"FSee ::trace_object_allocations for more information and examples.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"-allocation_generation(object) -> Fixnum ;T0[I" (p1);T@ FI"ObjectSpace;TcRDoc::NormalModule00PKq]eutrace_object_allocations-c.rinu[U:RDoc::AnyMethod[iI"trace_object_allocations:ETI"*ObjectSpace::trace_object_allocations;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"MStarts tracing object allocations from the ObjectSpace extension module.;To:RDoc::Markup::BlankLineo; ; [I"For example:;T@o:RDoc::Markup::Verbatim; [I"require 'objspace' ;TI" ;TI" class C ;TI" include ObjectSpace ;TI" ;TI" def foo ;TI"% trace_object_allocations do ;TI" obj = Object.new ;TI"K p "#{allocation_sourcefile(obj)}:#{allocation_sourceline(obj)}" ;TI" end ;TI" end ;TI" end ;TI" ;TI"#C.new.foo #=> "objtrace.rb:8" ;T: @format0o; ; [I"QThis example has included the ObjectSpace module to make it easier to read, ;TI"Pbut you can also use the ::trace_object_allocations notation (recommended).;T@o; ; [I"LNote that this feature introduces a huge performance decrease and huge ;TI"memory consumption.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"(trace_object_allocations { block } ;T0[I"();T@*FI"ObjectSpace;TcRDoc::NormalModule00PKq]fҜ#trace_object_allocations_clear-c.rinu[U:RDoc::AnyMethod[iI"#trace_object_allocations_clear:ETI"0ObjectSpace::trace_object_allocations_clear;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"(Clear recorded tracing information.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"$trace_object_allocations_clear ;T0[I"();T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]'++garbage_collect-c.rinu[U:RDoc::AnyMethod[iI"garbage_collect:ETI"!ObjectSpace::garbage_collect;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"def GC.start(full_mark: true, immediate_sweep: true) end ;T: @format0o; ; [I"1Use full_mark: false to perform a minor GC. ;TI"CUse immediate_sweep: false to defer sweeping (use lazy sweep).;T@o; ; [I"RNote: These keyword arguments are implementation and version dependent. They ;TI"Kare not guaranteed to be future-compatible, and may be ignored if the ;TI"5underlying implementation does not support them.;T: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0I"GC.start -> nil GC.garbage_collect -> nil ObjectSpace.garbage_collect -> nil GC.start(full_mark: false) -> nil ;T0[I"(p1 = {});T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]\1 _id2ref-c.rinu[U:RDoc::AnyMethod[iI" _id2ref:ETI"ObjectSpace::_id2ref;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"DConverts an object id to a reference to the object. May not be ;TI"Acalled on an object id passed as a parameter to a finalizer.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I"@s = "I am a string" #=> "I am a string" ;TI"@r = ObjectSpace._id2ref(s.object_id) #=> "I am a string" ;TI"4r == s #=> true;T: @format0: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0I"1ObjectSpace._id2ref(object_id) -> an_object ;T0[I" (p1);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]reachable_objects_from-c.rinu[U:RDoc::AnyMethod[iI"reachable_objects_from:ETI"(ObjectSpace::reachable_objects_from;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::List: @type: LABEL: @items[o:RDoc::Markup::ListItem: @label[I"MRI specific feature;T; [o:RDoc::Markup::Paragraph; [I"-Return all reachable objects from `obj'.;To:RDoc::Markup::BlankLineo;; [I":This method returns all reachable objects from `obj'.;T@o;; [I"OIf `obj' has two or more references to the same object `x', then returned ;TI"(array only includes one `x' object.;T@o;; [I"KIf `obj' is a non-markable (non-heap management) object such as true, ;TI"Mfalse, nil, symbols and Fixnums (and Flonum) then it simply returns nil.;T@o;; [ I"QIf `obj' has references to an internal object, then it returns instances of ;TI"PObjectSpace::InternalObjectWrapper class. This object contains a reference ;TI"Nto an internal object and you can check the type of internal object with ;TI"`type' method.;T@o;; [I"QIf `obj' is instance of ObjectSpace::InternalObjectWrapper class, then this ;TI"Kmethod returns all reachable object from an internal object, which is ;TI"pointed by `obj'.;T@o;; [I"1With this method, you can find memory leaks.;T@o;; [I"=This method is only expected to work except with C Ruby.;T@o;; [I" Example:;To:RDoc::Markup::Verbatim; [I"9ObjectSpace.reachable_objects_from(['a', 'b', 'c']) ;TI" #=> [Array, 'a', 'b', 'c'] ;TI" ;TI"9ObjectSpace.reachable_objects_from(['a', 'a', 'a']) ;TI"K#=> [Array, 'a', 'a', 'a'] # all 'a' strings have different object id ;TI" ;TI"9ObjectSpace.reachable_objects_from([v = 'a', v, v]) ;TI"#=> [Array, 'a'] ;TI" ;TI"+ObjectSpace.reachable_objects_from(1) ;TI"6#=> nil # 1 is not markable (heap managed) object;T: @format0: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I"=ObjectSpace.reachable_objects_from(obj) -> array or nil ;T0[I" (p1);T@AFI"ObjectSpace;TcRDoc::NormalModule00PKq]bbcount_objects_size-c.rinu[U:RDoc::AnyMethod[iI"count_objects_size:ETI"$ObjectSpace::count_objects_size;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"2Counts objects size (in bytes) for each type.;To:RDoc::Markup::BlankLineo; ; [I"FNote that this information is incomplete. You need to deal with ;TI"Cthis information as only a *HINT*. Especially, total size of ;TI"T_DATA may not right size.;T@o; ; [I"It returns a hash as:;To:RDoc::Markup::Verbatim; [I"S{:TOTAL=>1461154, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249, ...} ;T: @format0o; ; [I"6If the optional argument, result_hash, is given, ;TI"%it is overwritten and returned. ;TI",This is intended to avoid probe effect.;T@o; ; [I"BThe contents of the returned hash is implementation defined. ;TI"!It may be changed in future.;T@o; ; [I"6This method is only expected to work with C Ruby.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I";ObjectSpace.count_objects_size([result_hash]) -> hash ;T0[I"(p1 = v1);T@&FI"ObjectSpace;TcRDoc::NormalModule00PKq]'uuundefine_finalizer-c.rinu[U:RDoc::AnyMethod[iI"undefine_finalizer:ETI"$ObjectSpace::undefine_finalizer;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"+Removes all finalizers for obj.;T: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0I")ObjectSpace.undefine_finalizer(obj) ;T0[I" (p1);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]cdefine_finalizer-c.rinu[U:RDoc::AnyMethod[iI"define_finalizer:ETI""ObjectSpace::define_finalizer;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"EAdds aProc as a finalizer, to be called after obj ;TI"was destroyed.;T: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0I"5ObjectSpace.define_finalizer(obj, aProc=proc()) ;T0[I"(p1, p2 = v2);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq] p((allocation_class_path-c.rinu[U:RDoc::AnyMethod[iI"allocation_class_path:ETI"'ObjectSpace::allocation_class_path;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I".Returns the class for the given +object+.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I" class A ;TI" def foo ;TI"2 ObjectSpace::trace_object_allocations do ;TI" obj = Object.new ;TI": p "#{ObjectSpace::allocation_class_path(obj)}" ;TI" end ;TI" end ;TI" end ;TI" ;TI"A.new.foo #=> "Class" ;T: @format0o; ; [I"FSee ::trace_object_allocations for more information and examples.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"-allocation_class_path(object) -> string ;T0[I" (p1);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]wphcount_objects-c.rinu[U:RDoc::AnyMethod[iI"count_objects:ETI"ObjectSpace::count_objects;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I""Counts objects for each type.;To:RDoc::Markup::BlankLineo; ; [I" It returns a hash, such as:;To:RDoc::Markup::Verbatim; [ I"{ ;TI" :TOTAL=>10000, ;TI" :FREE=>3011, ;TI" :T_OBJECT=>6, ;TI" :T_CLASS=>404, ;TI" # ... ;TI"} ;T: @format0o; ; [I"DThe contents of the returned hash are implementation specific. ;TI"!It may be changed in future.;T@o; ; [I"6If the optional argument +result_hash+ is given, ;TI"Lit is overwritten and returned. This is intended to avoid probe effect.;T@o; ; [I"4This method is only expected to work on C Ruby.;T: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0I"6ObjectSpace.count_objects([result_hash]) -> hash ;T0[I"(p1 = v1);T@&FI"ObjectSpace;TcRDoc::NormalModule00PKq]ʵ8WeakMap/length-i.rinu[U:RDoc::AnyMethod[iI" length:ETI" ObjectSpace::WeakMap#length;TF: publico:RDoc::Markup::Document: @parts[: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" WeakMap;TcRDoc::NormalClass00PKq]VkkWeakMap/each_pair-i.rinu[U:RDoc::AnyMethod[iI"each_pair:ETI"#ObjectSpace::WeakMap#each_pair;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AIterates over keys and objects in a weakly referenced object;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" WeakMap;TcRDoc::NormalClass00PKq] ؄mmWeakMap/each_value-i.rinu[U:RDoc::AnyMethod[iI"each_value:ETI"$ObjectSpace::WeakMap#each_value;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AIterates over keys and objects in a weakly referenced object;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" WeakMap;TcRDoc::NormalClass00PKq]!<WeakMap/inspect-i.rinu[U:RDoc::AnyMethod[iI" inspect:ETI"!ObjectSpace::WeakMap#inspect;TF: publico:RDoc::Markup::Document: @parts[: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" WeakMap;TcRDoc::NormalClass00PKq][%LLWeakMap/key%3f-i.rinu[U:RDoc::AnyMethod[iI" key?:ETI"ObjectSpace::WeakMap#key?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"*Returns +true+ if +key+ is registered;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I" (p1);T@FI" WeakMap;TcRDoc::NormalClass00PKq]ˋ5ggWeakMap/values-i.rinu[U:RDoc::AnyMethod[iI" values:ETI" ObjectSpace::WeakMap#values;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"CIterates over values and objects in a weakly referenced object;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" WeakMap;TcRDoc::NormalClass00PKq]TTWeakMap/include%3f-i.rinu[U:RDoc::AnyMethod[iI" include?:ETI""ObjectSpace::WeakMap#include?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"*Returns +true+ if +key+ is registered;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I" (p1);T@FI" WeakMap;TcRDoc::NormalClass00PKq]uiWeakMap/size-i.rinu[U:RDoc::AnyMethod[iI" size:ETI"ObjectSpace::WeakMap#size;TF: publico:RDoc::Markup::Document: @parts[: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI" WeakMap;TcRDoc::NormalClass00PKq]±ZZWeakMap/%5b%5d-i.rinu[U:RDoc::AnyMethod[iI"[]:ETI"ObjectSpace::WeakMap#[];TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"any objects, but those objects can get garbage collected.;To:RDoc::Markup::BlankLineo; ;[I"AThis class is mostly used internally by WeakRef, please use ;TI"/+lib/weakref.rb+ for the public interface.;T: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[I"Enumerable;To;;[; @; 0I" gc.c;T[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[I"[];T@[I"[]=;T@[I" each;T@[I" each_key;T@[I"each_pair;T@[I"each_value;T@[I" include?;T@[I" inspect;T@[I" key?;T@[I" keys;T@[I" length;T@[I" member?;T@[I" size;T@[I" values;T@[;[[;[[I" finalize;T@[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"ext/objspace/objspace.c;TI"ObjectSpace;TcRDoc::NormalModulePKq]N?WeakMap/finalize-i.rinu[U:RDoc::AnyMethod[iI" finalize:ETI""ObjectSpace::WeakMap#finalize;TF: privateo:RDoc::Markup::Document: @parts[: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I" (p1);T@ FI" WeakMap;TcRDoc::NormalClass00PKq]nggWeakMap/%5b%5d%3d-i.rinu[U:RDoc::AnyMethod[iI"[]=:ETI"ObjectSpace::WeakMap#[]=;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"CCreates a weak reference from the given key to the given value;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I" (p1, p2);T@FI" WeakMap;TcRDoc::NormalClass00PKq]' aaWeakMap/keys-i.rinu[U:RDoc::AnyMethod[iI" keys:ETI"ObjectSpace::WeakMap#keys;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AIterates over keys and objects in a weakly referenced object;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" WeakMap;TcRDoc::NormalClass00PKq]! YRRWeakMap/member%3f-i.rinu[U:RDoc::AnyMethod[iI" member?:ETI"!ObjectSpace::WeakMap#member?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"*Returns +true+ if +key+ is registered;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I" (p1);T@FI" WeakMap;TcRDoc::NormalClass00PKq]:0aaWeakMap/each-i.rinu[U:RDoc::AnyMethod[iI" each:ETI"ObjectSpace::WeakMap#each;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AIterates over keys and objects in a weakly referenced object;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" WeakMap;TcRDoc::NormalClass00PKq]OiiWeakMap/each_key-i.rinu[U:RDoc::AnyMethod[iI" each_key:ETI""ObjectSpace::WeakMap#each_key;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AIterates over keys and objects in a weakly referenced object;To:RDoc::Markup::BlankLine: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI" WeakMap;TcRDoc::NormalClass00PKq]%allocation_sourcefile-c.rinu[U:RDoc::AnyMethod[iI"allocation_sourcefile:ETI"'ObjectSpace::allocation_sourcefile;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I" string ;T0[I" (p1);T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]FNBA::)trace_object_allocations_debug_start-c.rinu[U:RDoc::AnyMethod[iI")trace_object_allocations_debug_start:ETI"6ObjectSpace::trace_object_allocations_debug_start;TT: publico:RDoc::Markup::Document: @parts[: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"ObjectSpace;TcRDoc::NormalModule00PKq]^8]]allocation_method_id-c.rinu[U:RDoc::AnyMethod[iI"allocation_method_id:ETI"&ObjectSpace::allocation_method_id;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I":Returns the method identifier for the given +object+.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I" class A ;TI" include ObjectSpace ;TI" ;TI" def foo ;TI"% trace_object_allocations do ;TI" obj = Object.new ;TI"J p "#{allocation_class_path(obj)}##{allocation_method_id(obj)}" ;TI" end ;TI" end ;TI" end ;TI" ;TI"A.new.foo #=> "Class#new" ;T: @format0o; ; [I"FSee ::trace_object_allocations for more information and examples.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I",allocation_method_id(object) -> string ;T0[I" (p1);T@ FI"ObjectSpace;TcRDoc::NormalModule00PKq]7'count_nodes-c.rinu[U:RDoc::AnyMethod[iI"count_nodes:ETI"ObjectSpace::count_nodes;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"%Counts nodes for each node type.;To:RDoc::Markup::BlankLineo; ; [I"QThis method is only for MRI developers interested in performance and memory ;TI"usage of Ruby programs.;T@o; ; [I"It returns a hash as:;T@o:RDoc::Markup::Verbatim; [I"E{:NODE_METHOD=>2027, :NODE_FBODY=>1927, :NODE_CFUNC=>1798, ...} ;T: @format0o; ; [I"LIf the optional argument, result_hash, is given, it is overwritten and ;TI"6returned. This is intended to avoid probe effect.;T@o; ; [I" Note: ;TI"BThe contents of the returned hash is implementation defined. ;TI"!It may be changed in future.;T@o; ; [I"6This method is only expected to work with C Ruby.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I"4ObjectSpace.count_nodes([result_hash]) -> hash ;T0[I"(p1 = v1);T@%FI"ObjectSpace;TcRDoc::NormalModule00PKq]~memsize_of_all-c.rinu[U:RDoc::AnyMethod[iI"memsize_of_all:ETI" ObjectSpace::memsize_of_all;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"8Return consuming memory size of all living objects.;To:RDoc::Markup::BlankLineo; ; [I"PIf +klass+ (should be Class object) is given, return the total memory size ;TI"%of instances of the given class.;T@o; ; [I"KNote that the returned size is incomplete. You need to deal with this ;TI"Oinformation as only a *HINT*. Especially, the size of +T_DATA+ may not be ;TI" correct.;T@o; ; [I"INote that this method does *NOT* return total malloc'ed memory size.;T@o; ; [I";This method can be defined by the following Ruby code:;T@o:RDoc::Markup::Verbatim; [ I"&def memsize_of_all klass = false ;TI" total = 0 ;TI"# ObjectSpace.each_object{|e| ;TI"S total += ObjectSpace.memsize_of(e) if klass == false || e.kind_of?(klass) ;TI" } ;TI" total ;TI" end ;T: @format0o; ; [I"6This method is only expected to work with C Ruby.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0I"4ObjectSpace.memsize_of_all([klass]) -> Integer ;T0[I"(p1 = v1);T@*FI"ObjectSpace;TcRDoc::NormalModule00PKq]8mm"InternalObjectWrapper/inspect-i.rinu[U:RDoc::AnyMethod[iI" inspect:ETI"/ObjectSpace::InternalObjectWrapper#inspect;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"See Object#inspect.;To:RDoc::Markup::BlankLine: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"InternalObjectWrapper;TcRDoc::NormalClass00PKq]K)||InternalObjectWrapper/type-i.rinu[U:RDoc::AnyMethod[iI" type:ETI",ObjectSpace::InternalObjectWrapper#type;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"-Returns the type of the internal object.;To:RDoc::Markup::BlankLine: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"InternalObjectWrapper;TcRDoc::NormalClass00PKq]ff4InternalObjectWrapper/cdesc-InternalObjectWrapper.rinu[U:RDoc::NormalClass[iI"InternalObjectWrapper:ETI"'ObjectSpace::InternalObjectWrapper;TI" Object;To:RDoc::Markup::Document: @parts[o;;[ o:RDoc::Markup::Paragraph;[I"/This class is used as a return value from ;TI")ObjectSpace::reachable_objects_from.;To:RDoc::Markup::BlankLineo; ;[I"EWhen ObjectSpace::reachable_objects_from returns an object with ;TI"Mreferences to an internal object, an instance of this class is returned.;T@o; ;[I"KYou can use the #type method to check the type of the internal object.;T: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[I" inspect;TI"ext/objspace/objspace.c;T[I"internal_object_id;T@/[I" type;T@/[;[[;[[[U:RDoc::Context::Section[i0o;;[; 0; 0[@I"ObjectSpace;TcRDoc::NormalModulePKq]IED-InternalObjectWrapper/internal_object_id-i.rinu[U:RDoc::AnyMethod[iI"internal_object_id:ETI":ObjectSpace::InternalObjectWrapper#internal_object_id;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"9Returns the Object#object_id of the internal object.;To:RDoc::Markup::BlankLine: @fileI"ext/objspace/objspace.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"InternalObjectWrapper;TcRDoc::NormalClass00PKq]Deach_object-c.rinu[U:RDoc::AnyMethod[iI"each_object:ETI"ObjectSpace::each_object;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"GCalls the block once for each living, nonimmediate object in this ;TI"BRuby process. If module is specified, calls the block ;TI"Ifor only those classes or modules that match (or are a subclass of) ;TI"Cmodule. Returns the number of objects found. Immediate ;TI"9objects (Fixnums, Symbols ;TI"Ftrue, false, and nil) are ;TI"Dnever returned. In the example below, each_object ;TI"Jreturns both the numbers we defined and several constants defined in ;TI""the Math module.;To:RDoc::Markup::BlankLineo; ; [I"=If no block is given, an enumerator is returned instead.;T@o:RDoc::Markup::Verbatim; [ I"a = 102.7 ;TI"&b = 95 # Won't be returned ;TI"c = 12345678987654321 ;TI"9count = ObjectSpace.each_object(Numeric) {|x| p x } ;TI""puts "Total count: #{count}" ;T: @format0o; ; [I"produces:;T@o; ; [ I"12345678987654321 ;TI" 102.7 ;TI"2.71828182845905 ;TI"3.14159265358979 ;TI"2.22044604925031e-16 ;TI"1.7976931348623157e+308 ;TI"2.2250738585072e-308 ;TI"Total count: 7;T; 0: @fileI" gc.c;T:0@omit_headings_from_table_of_contents_below0I"~ObjectSpace.each_object([module]) {|obj| ... } -> fixnum ObjectSpace.each_object([module]) -> an_enumerator ;T0[I"(p1 = v1);T@.FI"ObjectSpace;TcRDoc::NormalModule00PKq]2=#trace_object_allocations_start-c.rinu[U:RDoc::AnyMethod[iI"#trace_object_allocations_start:ETI"0ObjectSpace::trace_object_allocations_start;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"'Starts tracing object allocations.;T: @fileI""ext/objspace/object_tracing.c;T:0@omit_headings_from_table_of_contents_below0I"$trace_object_allocations_start ;T0[I"();T@FI"ObjectSpace;TcRDoc::NormalModule00PKq]|>memsize_of-c.rinu[PKq]Ö0 cdesc-ObjectSpace.rinu[PKq]Άw  reachable_objects_from_root-c.rinu[PKq]8fallocation_sourceline-c.rinu[PKq]ƌ://count_tdata_objects-c.rinu[PKq]% UU"Ftrace_object_allocations_stop-c.rinu[PKq]A^^allocation_generation-c.rinu[PKq]eutrace_object_allocations-c.rinu[PKq]fҜ#g#trace_object_allocations_clear-c.rinu[PKq]'++V%garbage_collect-c.rinu[PKq]\1 )_id2ref-c.rinu[PKq],reachable_objects_from-c.rinu[PKq]bb4count_objects_size-c.rinu[PKq]'uu9undefine_finalizer-c.rinu[PKq]cd;define_finalizer-c.rinu[PKq] p((^=allocation_class_path-c.rinu[PKq]wph@count_objects-c.rinu[PKq]ʵ8DWeakMap/length-i.rinu[PKq]VkkEWeakMap/each_pair-i.rinu[PKq] ؄mmGWeakMap/each_value-i.rinu[PKq]!<BIWeakMap/inspect-i.rinu[PKq][%LLpJWeakMap/key%3f-i.rinu[PKq]ˋ5ggKWeakMap/values-i.rinu[PKq]TTMWeakMap/include%3f-i.rinu[PKq]uiDOWeakMap/size-i.rinu[PKq]±ZZiPWeakMap/%5b%5d-i.rinu[PKq]IRWeakMap/cdesc-WeakMap.rinu[PKq]N?HVWeakMap/finalize-i.rinu[PKq]ngg|WWeakMap/%5b%5d%3d-i.rinu[PKq]' aa)YWeakMap/keys-i.rinu[PKq]! YRRZWeakMap/member%3f-i.rinu[PKq]:0aac\WeakMap/each-i.rinu[PKq]Oii^WeakMap/each_key-i.rinu[PKq]%_allocation_sourcefile-c.rinu[PKq]FNBA::)btrace_object_allocations_debug_start-c.rinu[PKq]^8]]callocation_method_id-c.rinu[PKq]7'Jgcount_nodes-c.rinu[PKq]~kmemsize_of_all-c.rinu[PKq]8mm"pInternalObjectWrapper/inspect-i.rinu[PKq]K)||YrInternalObjectWrapper/type-i.rinu[PKq]ff4$tInternalObjectWrapper/cdesc-InternalObjectWrapper.rinu[PKq]IED-xInternalObjectWrapper/internal_object_id-i.rinu[PKq]Dzeach_object-c.rinu[PKq]2=#ztrace_object_allocations_start-c.rinu[PK,,4h