Bug #4991 ยป gc.c.profiler_data.patch
gc.c (working copy) | ||
---|---|---|
}
|
||
#endif
|
||
/*
|
||
* call-seq:
|
||
* GC::Profiler.data -> [Hash, ...]
|
||
*
|
||
* Returns an Array of individual profile data Hashes ordered from earliest
|
||
* to latest by <tt>:GC_INVOKE_TIME</tt>. For example:
|
||
*
|
||
* [{:GC_TIME=>1.3000000000000858e-05,
|
||
* :GC_INVOKE_TIME=>0.010634999999999999,
|
||
* :HEAP_USE_SIZE=>289640,
|
||
* :HEAP_TOTAL_SIZE=>588960,
|
||
* :HEAP_TOTAL_OBJECTS=>14724,
|
||
* :GC_IS_MARKED=>false},
|
||
* ...
|
||
* ]
|
||
*
|
||
* The keys mean:
|
||
*
|
||
* +:GC_TIME+:: Time taken for this run in milliseconds
|
||
* +:GC_INVOKE_TIME+:: Time the GC was invoked since startup in seconds
|
||
* +:HEAP_USE_SIZE+:: Bytes of heap used
|
||
* +:HEAP_TOTAL_SIZE+:: Size of heap in bytes
|
||
* +:HEAP_TOTAL_OBJECTS+:: Number of objects
|
||
* +:GC_IS_MARKED+:: Is the GC in the mark phase
|
||
*
|
||
*/
|
||
static VALUE
|
||
gc_profile_record_get(void)
|
||
{
|
||
... | ... | |
rb_mProfiler = rb_define_module_under(rb_mGC, "Profiler");
|
||
rb_define_singleton_method(rb_mProfiler, "enabled?", gc_profile_enable_get, 0);
|
||
rb_define_singleton_method(rb_mProfiler, "enable", gc_profile_enable, 0);
|
||
rb_define_singleton_method(rb_mProfiler, "data", gc_profile_record_get, 0);
|
||
rb_define_singleton_method(rb_mProfiler, "disable", gc_profile_disable, 0);
|
||
rb_define_singleton_method(rb_mProfiler, "clear", gc_profile_clear, 0);
|
||
rb_define_singleton_method(rb_mProfiler, "result", gc_profile_result, 0);
|