ruby-changes:21175
From: nari <ko1@a...>
Date: Thu, 8 Sep 2011 12:57:53 +0900 (JST)
Subject: [ruby-changes:21175] nari:r33224 (trunk): * gc.c (Init_GC): defined GC::Profiler.raw_data. based on the
nari 2011-09-08 12:57:41 +0900 (Thu, 08 Sep 2011) New Revision: 33224 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33224 Log: * gc.c (Init_GC): defined GC::Profiler.raw_data. based on the patch by Eric Hodel. [ruby-core:37857] [Bug #4991] Modified files: trunk/ChangeLog trunk/gc.c Index: ChangeLog =================================================================== --- ChangeLog (revision 33223) +++ ChangeLog (revision 33224) @@ -1,3 +1,8 @@ +Thu Sep 8 12:43:18 2011 Narihiro Nakamura <authornari@g...> + + * gc.c (Init_GC): defined GC::Profiler.raw_data. based on the + patch by Eric Hodel. [ruby-core:37857] [Bug #4991] + Thu Sep 8 09:02:53 2011 Nobuyoshi Nakada <nobu@r...> * gc.c (id2ref): objects which are unmarked but not in sweep_slots Index: gc.c =================================================================== --- gc.c (revision 33223) +++ gc.c (revision 33224) @@ -3434,6 +3434,33 @@ } #endif +/* + * call-seq: + * GC::Profiler.raw_data -> [Hash, ...] + * + * Returns an Array of individual raw 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) { @@ -3626,6 +3653,7 @@ 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, "raw_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); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/