From 5db49a8bc02a1a157631c341f5b69f1801a8972f Mon Sep 17 00:00:00 2001 From: Nerian Date: Sat, 3 Dec 2011 20:38:56 +0100 Subject: [PATCH] Add documentation for Profiler --- lib/profiler.rb | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/lib/profiler.rb b/lib/profiler.rb index a4b8889..f3d48b1 100644 --- a/lib/profiler.rb +++ b/lib/profiler.rb @@ -1,3 +1,57 @@ +# 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 application will slown 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. +# +# 1. Command line +# +# Run your Ruby script with -rprofile, like this: +# +# ruby -rprofile example.rb +# +# 2. 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 -- 1.7.8.1