% @overall_time = @result.threads.reduce(0) do |val, thread| val += thread.total_time end %>
Call tree for application
<%= application %> <%= arguments %>
Generated on <%= Time.now %> with options <%= @options.inspect %>
Threshold:
* indicates recursively called methods
Enter a decimal value
d
into the threshold field and click "Apply" to hide all nodes marked with time values lower than
d
.
Click on "Expand All" for full tree expansion.
Click on "Collapse All" to show only top level nodes.
Use a, s, d, w as in Quake or Urban Terror to navigate the tree.
Use f and b to navigate the tree in preorder forward and backwards.
Use x to toggle visibility of a subtree.
Use * to expand/collapse a whole subtree.
Use h to navigate to thread root.
Use n and p to navigate between threads.
Click on background to move focus to a subtree.
<% @result.threads.each do |thread| %> <% thread_percent = 100 * (thread.total_time / @overall_time) thread_info = "#{"%4.2f%%" % thread_percent} ~ #{@overall_time}" %>
Thread: <%= thread.id %>, Fiber: <%= thread.fiber_id %> (<%= thread_info %>)
<% visited = Set.new output = StringIO.new('') print_stack(output, visited, thread.call_tree, thread.call_tree.total_time) %> <%= output.string %>
<% end %>