class RubyProf::CallInfoPrinter
printer.print(STDOUT)
printer = RubyProf::CallInfoPrinter.new(result)
end
[code to profile]
result = RubyProf.profile do
To use the printer:
into RubyProf’s internals.
is mainly for debugging purposes as it provides access into
Prints out the call graph based on CallTree instances. This
def print_footer(thread)
def print_footer(thread) @output << "\n" << "\n" end
def print_header(thread)
def print_header(thread) @output << "----------------------------------------------------\n" @output << "Thread ID: #{thread.id}\n" @output << "Fiber ID: #{thread.fiber_id}\n" @output << "Total Time: #{thread.total_time}\n" @output << "Sort by: #{sort_method}\n" @output << "\n" end
def print_methods(thread)
def print_methods(thread) visitor = CallTreeVisitor.new(thread.call_tree) visitor.visit do |call_tree, event| if event == :enter @output << " " * call_tree.depth @output << call_tree.target.full_name @output << " (" @output << "tt:#{sprintf("%#{TIME_WIDTH}.2f", call_tree.total_time)}, " @output << "st:#{sprintf("%#{TIME_WIDTH}.2f", call_tree.self_time)}, " @output << "wt:#{sprintf("%#{TIME_WIDTH}.2f", call_tree.wait_time)}, " @output << "ct:#{sprintf("%#{TIME_WIDTH}.2f", call_tree.children_time)}, " @output << "call:#{call_tree.called}, " @output << ")" @output << "\n" end end end