[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]