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

ruby-changes:22724

From: drbrain <ko1@a...>
Date: Fri, 24 Feb 2012 08:15:53 +0900 (JST)
Subject: [ruby-changes:22724] drbrain:r34773 (trunk): * lib/profiler.rb: Add Profiler documentation by Gonzalo Rodriguez.

drbrain	2012-02-24 08:15:44 +0900 (Fri, 24 Feb 2012)

  New Revision: 34773

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34773

  Log:
    * lib/profiler.rb:  Add Profiler documentation by Gonzalo Rodriguez.
      [Bug #5816]

  Modified files:
    trunk/ChangeLog
    trunk/lib/profiler.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34772)
+++ ChangeLog	(revision 34773)
@@ -1,3 +1,8 @@
+Fri Feb 24 07:13:20 2012  Eric Hodel  <drbrain@s...>
+
+	* lib/profiler.rb:  Add Profiler documentation by Gonzalo Rodriguez.
+	  [Bug #5816]
+
 Fri Feb 24 08:08:38 2012  Aaron Patterson <aaron@t...>
 
 	* ext/psych/parser.c: set parser encoding based on the YAML input
Index: lib/profiler.rb
===================================================================
--- lib/profiler.rb	(revision 34772)
+++ lib/profiler.rb	(revision 34773)
@@ -1,3 +1,62 @@
+# Profile provides a way to Profile your Ruby application. 
+# 
+# Profiling your program is a way of determining which methods are called and
+# how long each method takes to complete.  This way you can detect which
+# methods are possible bottlenecks.
+# 
+# Profiling your program will slow down your execution time considerably,
+# so activate it only when you need it.  Don't confuse benchmarking with
+# profiling.
+# 
+# There are two ways to activate Profiling:
+# 
+# == Command line
+# 
+# Run your Ruby script with <code>-rprofile</code>:
+# 
+#   ruby -rprofile example.rb
+#
+# If you're profiling an executable in your <code>$PATH</code> you can use
+# <code>ruby -S</code>:
+#
+#   ruby -rprofile -S some_executable
+#   
+# == From code
+# 
+# Just require 'profile':
+# 
+#   require 'profile'
+#   
+#   def slow_method
+#     5000.times do
+#       9999999999999999*999999999
+#     end  
+#   end
+# 
+#   def fast_method
+#     5000.times do
+#       9999999999999999+999999999
+#     end  
+#   end
+# 
+#   slow_method
+#   fast_method
+#   
+# The output in both cases is a report when the execution is over:
+# 
+#   ruby -rprofile example.rb
+# 
+#     %   cumulative   self              self     total
+#    time   seconds   seconds    calls  ms/call  ms/call  name
+#    68.42     0.13      0.13        2    65.00    95.00  Integer#times
+#    15.79     0.16      0.03     5000     0.01     0.01  Fixnum#*
+#    15.79     0.19      0.03     5000     0.01     0.01  Fixnum#+
+#     0.00     0.19      0.00        2     0.00     0.00  IO#set_encoding
+#     0.00     0.19      0.00        1     0.00   100.00  Object#slow_method
+#     0.00     0.19      0.00        2     0.00     0.00  Module#method_added
+#     0.00     0.19      0.00        1     0.00    90.00  Object#fast_method
+#     0.00     0.19      0.00        1     0.00   190.00  #toplevel
+
 module Profiler__
   # internal values
   @@start = @@stack = @@map = nil

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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