1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/railties/lib/rubyprof_ext.rb
David Heinemeier Hansson 48bb9bb0ad Missing file
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1342 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-21 13:21:29 +00:00

35 lines
973 B
Ruby

require 'prof'
module Prof
# Adapted from Shugo Maeda's unprof.rb
def self.print_profile(results, io = $stderr)
total = results.detect { |i|
i.method_class.nil? && i.method_id == :"#toplevel"
}.total_time
total = 0.001 if total < 0.001
io.puts " %% cumulative self self total"
io.puts " time seconds seconds calls ms/call ms/call name"
sum = 0.0
for r in results
sum += r.self_time
name = if r.method_class.nil?
r.method_id.to_s
elsif r.method_class.is_a?(Class)
"#{r.method_class}##{r.method_id}"
else
"#{r.method_class}.#{r.method_id}"
end
io.printf "%6.2f %8.3f %8.3f %8d %8.2f %8.2f %s\n",
r.self_time / total * 100,
sum,
r.self_time,
r.count,
r.self_time * 1000 / r.count,
r.total_time * 1000 / r.count,
name
end
end
end