Sha256: 95385c98977a3530368cd17861bc7f4cfac969670c985c679f57009877b85bf3
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
require 'active_support/core_ext/object/inclusion' if ARGV.first.in?([nil, "-h", "--help"]) $stderr.puts "Usage: rails profiler 'Person.expensive_method(10)' [times] [flat|graph|graph_html]" exit(1) end # Define a method to profile. if ARGV[1] and ARGV[1].to_i > 1 eval "def profile_me() #{ARGV[1]}.times { #{ARGV[0]} } end" else eval "def profile_me() #{ARGV[0]} end" end # Use the ruby-prof extension if available. Fall back to stdlib profiler. begin begin require "ruby-prof" $stderr.puts 'Using the ruby-prof extension.' RubyProf.measure_mode = RubyProf::WALL_TIME RubyProf.start profile_me results = RubyProf.stop if ARGV[2] printer_class = RubyProf.const_get((ARGV[2] + "_printer").classify) else printer_class = RubyProf::FlatPrinter end printer = printer_class.new(results) printer.print($stderr) rescue LoadError require "prof" $stderr.puts 'Using the old ruby-prof extension.' Prof.clock_mode = Prof::GETTIMEOFDAY Prof.start profile_me results = Prof.stop require 'rubyprof_ext' Prof.print_profile(results, $stderr) end rescue LoadError require 'profiler' $stderr.puts 'Using the standard Ruby profiler.' Profiler__.start_profile profile_me Profiler__.stop_profile Profiler__.print_profile($stderr) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
railties-3.1.0.beta1 | lib/rails/commands/profiler.rb |