Bug #5816 » 0001-Add-documentation-for-Profiler.patch
lib/profiler.rb | ||
---|---|---|
# 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 <tt>-rprofile</tt>, 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
|