ruby-prof 0.15.6 → 0.15.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES +4 -0
- data/README.rdoc +8 -4
- data/doc/README_rdoc.html +8 -8
- data/doc/RubyProf/CallStackPrinter.html +91 -574
- data/doc/created.rid +4 -4
- data/doc/index.html +8 -8
- data/doc/js/search_index.js +1 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/table_of_contents.html +72 -67
- data/lib/ruby-prof/printers/call_stack_printer.rb +29 -542
- data/lib/ruby-prof/version.rb +1 -1
- metadata +3 -6
- data/lib/ruby-prof/images/empty.png +0 -0
- data/lib/ruby-prof/images/minus.png +0 -0
- data/lib/ruby-prof/images/plus.png +0 -0
data/doc/created.rid
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
Thu, 23 Apr 2015 12:24:19 +0200
|
2
2
|
bin/ruby-prof Sun, 22 Feb 2015 15:41:38 +0100
|
3
3
|
bin/ruby-prof-check-trace Sun, 10 Mar 2013 10:57:14 +0100
|
4
4
|
examples/flat.txt Tue, 29 Jan 2013 16:43:39 +0100
|
@@ -12,7 +12,7 @@ lib/ruby-prof/compatibility.rb Sat, 14 Feb 2015 13:02:38 +0100
|
|
12
12
|
lib/ruby-prof/method_info.rb Sun, 22 Feb 2015 16:10:12 +0100
|
13
13
|
lib/ruby-prof/printers/abstract_printer.rb Tue, 29 Jan 2013 16:43:39 +0100
|
14
14
|
lib/ruby-prof/printers/call_info_printer.rb Sun, 22 Feb 2015 16:10:12 +0100
|
15
|
-
lib/ruby-prof/printers/call_stack_printer.rb
|
15
|
+
lib/ruby-prof/printers/call_stack_printer.rb Thu, 23 Apr 2015 12:17:56 +0200
|
16
16
|
lib/ruby-prof/printers/call_tree_printer.rb Tue, 29 Jan 2013 16:43:39 +0100
|
17
17
|
lib/ruby-prof/printers/dot_printer.rb Sun, 22 Feb 2015 16:10:12 +0100
|
18
18
|
lib/ruby-prof/printers/flat_printer.rb Sat, 14 Feb 2015 12:40:53 +0100
|
@@ -24,8 +24,8 @@ lib/ruby-prof/profile.rb Sun, 22 Feb 2015 16:10:12 +0100
|
|
24
24
|
lib/ruby-prof/rack.rb Thu, 23 Oct 2014 01:29:30 +0200
|
25
25
|
lib/ruby-prof/task.rb Tue, 29 Jan 2013 16:43:39 +0100
|
26
26
|
lib/ruby-prof/thread.rb Sun, 22 Feb 2015 16:10:12 +0100
|
27
|
-
lib/ruby-prof/version.rb
|
27
|
+
lib/ruby-prof/version.rb Thu, 23 Apr 2015 12:21:05 +0200
|
28
28
|
lib/unprof.rb Tue, 29 Jan 2013 16:43:39 +0100
|
29
29
|
ext/ruby_prof/ruby_prof.c Sat, 14 Feb 2015 12:36:01 +0100
|
30
|
-
README.rdoc
|
30
|
+
README.rdoc Thu, 23 Apr 2015 12:17:56 +0200
|
31
31
|
LICENSE Tue, 20 May 2014 07:16:27 +0200
|
data/doc/index.html
CHANGED
@@ -162,7 +162,10 @@ href="README_rdoc.html">README</a>.</p>
|
|
162
162
|
|
163
163
|
<h2 id="label-Requirements">Requirements<span><a href="#label-Requirements">¶</a> <a href="#top">↑</a></span></h2>
|
164
164
|
|
165
|
-
<p>ruby-prof requires Ruby 1.9.3 or higher
|
165
|
+
<p>ruby-prof requires Ruby 1.9.3 or higher. Please note some ruby releases
|
166
|
+
have known bugs which cause ruby-prof problems, like incorrect
|
167
|
+
measurements. We suggest to use the latest minor patch level release if
|
168
|
+
possible. In particular, on the 2.1 branch of ruby you should use 2.1.5.</p>
|
166
169
|
|
167
170
|
<p>If you are running Linux or Unix you'll need a C compiler so the
|
168
171
|
extension can be compiled when it is installed.</p>
|
@@ -296,19 +299,16 @@ gem's bin/xxx command to load, you may want to also measure
|
|
296
299
|
rubygems' startup penalty. You can do this by calling into
|
297
300
|
bin/ruby-prof directly, ex:</p>
|
298
301
|
|
299
|
-
<
|
300
|
-
|
301
|
-
<pre>g:/192/lib/ruby/gems/1.9.1/gems/ruby-prof-0.10.2/lib/ruby-prof.rb</pre>
|
302
|
+
<pre>$ gem which ruby-prof
|
303
|
+
g:/192/lib/ruby/gems/1.9.1/gems/ruby-prof-0.10.2/lib/ruby-prof.rb</pre>
|
302
304
|
|
303
305
|
<p>now run it thus (substitute lib/ruby-prof.rb with bin/ruby-prof):</p>
|
304
306
|
|
305
|
-
<
|
306
|
-
g:192binsome_installed_gem_command</p>
|
307
|
+
<pre>$ ruby g:/192/lib/ruby/gems/1.9.1/gems/ruby-prof-0.10.2/bin/ruby-prof g:\192\bin\some_installed_gem_command</pre>
|
307
308
|
|
308
309
|
<p>or</p>
|
309
310
|
|
310
|
-
<
|
311
|
-
./some_file_that_does_a_require_rubygems_at_the_beginning.rb</p>
|
311
|
+
<pre>$ ruby g:/192/lib/ruby/gems/1.9.1/gems/ruby-prof-0.10.2/bin/ruby-prof ./some_file_that_does_a_require_rubygems_at_the_beginning.rb</pre>
|
312
312
|
|
313
313
|
<h2 id="label-Profiling+Rails">Profiling Rails<span><a href="#label-Profiling+Rails">¶</a> <a href="#top">↑</a></span></h2>
|
314
314
|
|
data/doc/js/search_index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["rack","rubyprof","rubyprof","abstractprinter","aggregatecallinfo","callinfo","callinfoprinter","callinfovisitor","callstackprinter","calltreeprinter","cmd","dotprinter","flatprinter","flatprinterwithlinenumbers","graphhtmlprinter","graphprinter","methodinfo","multiprinter","profile","profiletask","thread","<=>()","aggregate_children()","aggregate_parents()","application()","arguments()","call()","call_sequence()","called()","called()","children()","children()","children_time()","children_time()","children_time()","clean_output_directory()","clear_cached_values_which_depend_on_recursiveness()","color()","convert()","copy_image_files()","cpu_frequency()","create_link()","create_output_directory()","define()","descendent_of()","detect_recursion()","detect_recursion()","detect_recursion()","dump()","eliminate!()","eliminate!()","eliminate_methods!()","exclude_threads()","exclude_threads=()","expansion()","figure_measure_mode()","file()","file_link()","find_call()","flat_profile()","graph_link()","graph_profile()","inspect()","line()","link()","load_pre_execs()","load_pre_libs()","measure_allocations()","measure_cpu_time()","measure_gc_runs()","measure_gc_time()","measure_memory()","measure_mode()","measure_mode=()","measure_mode_string()","measure_process_time()","measure_wall_time()","merge_call_tree()","method_href()","method_href()","method_name()","min_depth()","min_percent()","name()","new()","new()","new()","new()","new()","new()","new()","new()","new()","non_recursive()","non_recursive?()","non_recursive?()","option_parser()","output_directory()","parent()","parents()","parse_args()","pause()","pause()","paused?()","post_process()","print()","print()","print()","print()","print()","print()","print()","print_commands()","print_css()","print_file()","print_footer()","print_footer()","print_header()","print_header()","print_help()","print_java_script()","print_methods()","print_stack()","print_thread()","print_thread()","print_threads()","print_threads()","print_title_bar()","profile()","profile()","recalc_recursion()","recalc_recursion()","recalc_recursion()","recursive?()","resume()","resume()","root?()","root?()","roots_of()","run()","run_script()","running?()","running?()","self_time()","self_time()","setup_options()","setup_options()","setup_options()","sort_method()","sort_method()","stack()","stack_profile()","start()","start()","start_script()","stop()","stop()","sum()","target()","template()","threads()","threshold()","title()","to_s()","to_s()","to_s()","top_call_infos()","top_methods()","total_time()","total_time()","total_time()","total_time()","tree_profile()","visit()","wait_time()","wait_time()","license","readme","flat","graph.html","graph"],"longSearchIndex":["rack","rack::rubyprof","rubyprof","rubyprof::abstractprinter","rubyprof::aggregatecallinfo","rubyprof::callinfo","rubyprof::callinfoprinter","rubyprof::callinfovisitor","rubyprof::callstackprinter","rubyprof::calltreeprinter","rubyprof::cmd","rubyprof::dotprinter","rubyprof::flatprinter","rubyprof::flatprinterwithlinenumbers","rubyprof::graphhtmlprinter","rubyprof::graphprinter","rubyprof::methodinfo","rubyprof::multiprinter","rubyprof::profile","rubyprof::profiletask","rubyprof::thread","rubyprof::methodinfo#<=>()","rubyprof::methodinfo#aggregate_children()","rubyprof::methodinfo#aggregate_parents()","rubyprof::callstackprinter#application()","rubyprof::callstackprinter#arguments()","rack::rubyprof#call()","rubyprof::callinfo#call_sequence()","rubyprof::aggregatecallinfo#called()","rubyprof::methodinfo#called()","rubyprof::aggregatecallinfo#children()","rubyprof::methodinfo#children()","rubyprof::aggregatecallinfo#children_time()","rubyprof::callinfo#children_time()","rubyprof::methodinfo#children_time()","rubyprof::profiletask#clean_output_directory()","rubyprof::methodinfo#clear_cached_values_which_depend_on_recursiveness()","rubyprof::callstackprinter#color()","rubyprof::calltreeprinter#convert()","rubyprof::callstackprinter#copy_image_files()","rubyprof::cpu_frequency()","rubyprof::graphhtmlprinter#create_link()","rubyprof::profiletask#create_output_directory()","rubyprof::profiletask#define()","rubyprof::callinfo#descendent_of()","rubyprof::callinfo#detect_recursion()","rubyprof::methodinfo#detect_recursion()","rubyprof::thread#detect_recursion()","rubyprof::callstackprinter#dump()","rubyprof::callinfo#eliminate!()","rubyprof::methodinfo#eliminate!()","rubyprof::profile#eliminate_methods!()","rubyprof::exclude_threads()","rubyprof::exclude_threads=()","rubyprof::callstackprinter#expansion()","rubyprof::figure_measure_mode()","rubyprof::calltreeprinter#file()","rubyprof::graphhtmlprinter#file_link()","rubyprof::callinfo#find_call()","rubyprof::multiprinter#flat_profile()","rubyprof::callstackprinter#graph_link()","rubyprof::multiprinter#graph_profile()","rubyprof::callinfo#inspect()","rubyprof::aggregatecallinfo#line()","rubyprof::callstackprinter#link()","rubyprof::cmd#load_pre_execs()","rubyprof::cmd#load_pre_libs()","rubyprof::measure_allocations()","rubyprof::measure_cpu_time()","rubyprof::measure_gc_runs()","rubyprof::measure_gc_time()","rubyprof::measure_memory()","rubyprof::measure_mode()","rubyprof::measure_mode=()","rubyprof::measure_mode_string()","rubyprof::measure_process_time()","rubyprof::measure_wall_time()","rubyprof::callinfo#merge_call_tree()","rubyprof::callstackprinter#method_href()","rubyprof::graphhtmlprinter#method_href()","rubyprof::abstractprinter#method_name()","rubyprof::methodinfo#min_depth()","rubyprof::abstractprinter#min_percent()","rubyprof::callstackprinter#name()","rack::rubyprof::new()","rubyprof::abstractprinter::new()","rubyprof::aggregatecallinfo::new()","rubyprof::callinfovisitor::new()","rubyprof::cmd::new()","rubyprof::dotprinter::new()","rubyprof::multiprinter::new()","rubyprof::profile::new()","rubyprof::profiletask::new()","rubyprof::methodinfo#non_recursive()","rubyprof::callinfo#non_recursive?()","rubyprof::methodinfo#non_recursive?()","rubyprof::cmd#option_parser()","rubyprof::profiletask#output_directory()","rubyprof::aggregatecallinfo#parent()","rubyprof::methodinfo#parents()","rubyprof::cmd#parse_args()","rubyprof::pause()","rubyprof::profile#pause()","rubyprof::profile#paused?()","rubyprof::profile#post_process()","rack::rubyprof#print()","rubyprof::abstractprinter#print()","rubyprof::callstackprinter#print()","rubyprof::calltreeprinter#print()","rubyprof::dotprinter#print()","rubyprof::graphhtmlprinter#print()","rubyprof::multiprinter#print()","rubyprof::callstackprinter#print_commands()","rubyprof::callstackprinter#print_css()","rubyprof::abstractprinter#print_file()","rubyprof::abstractprinter#print_footer()","rubyprof::callstackprinter#print_footer()","rubyprof::abstractprinter#print_header()","rubyprof::callstackprinter#print_header()","rubyprof::callstackprinter#print_help()","rubyprof::callstackprinter#print_java_script()","rubyprof::flatprinterwithlinenumbers#print_methods()","rubyprof::callstackprinter#print_stack()","rubyprof::abstractprinter#print_thread()","rubyprof::calltreeprinter#print_thread()","rubyprof::abstractprinter#print_threads()","rubyprof::calltreeprinter#print_threads()","rubyprof::callstackprinter#print_title_bar()","rubyprof::profile()","rubyprof::profile::profile()","rubyprof::callinfo#recalc_recursion()","rubyprof::methodinfo#recalc_recursion()","rubyprof::thread#recalc_recursion()","rubyprof::methodinfo#recursive?()","rubyprof::resume()","rubyprof::profile#resume()","rubyprof::callinfo#root?()","rubyprof::methodinfo#root?()","rubyprof::callinfo::roots_of()","rubyprof::cmd#run()","rubyprof::profiletask#run_script()","rubyprof::running?()","rubyprof::profile#running?()","rubyprof::aggregatecallinfo#self_time()","rubyprof::methodinfo#self_time()","rubyprof::abstractprinter#setup_options()","rubyprof::cmd#setup_options()","rubyprof::graphhtmlprinter#setup_options()","rubyprof::abstractprinter#sort_method()","rubyprof::flatprinter#sort_method()","rubyprof::callinfo#stack()","rubyprof::multiprinter#stack_profile()","rubyprof::start()","rubyprof::profile#start()","rubyprof::start_script()","rubyprof::stop()","rubyprof::profile#stop()","rubyprof::callstackprinter#sum()","rubyprof::aggregatecallinfo#target()","rubyprof::graphhtmlprinter#template()","rubyprof::profile#threads()","rubyprof::callstackprinter#threshold()","rubyprof::callstackprinter#title()","rubyprof::aggregatecallinfo#to_s()","rubyprof::callinfo#to_s()","rubyprof::methodinfo#to_s()","rubyprof::thread#top_call_infos()","rubyprof::thread#top_methods()","rubyprof::aggregatecallinfo#total_time()","rubyprof::callstackprinter#total_time()","rubyprof::methodinfo#total_time()","rubyprof::thread#total_time()","rubyprof::multiprinter#tree_profile()","rubyprof::callinfovisitor#visit()","rubyprof::aggregatecallinfo#wait_time()","rubyprof::methodinfo#wait_time()","","","","",""],"info":[["Rack","","Rack.html","",""],["Rack::RubyProf","","Rack/RubyProf.html","",""],["RubyProf","","RubyProf.html","","<p>The call info visitor class does a depth-first traversal across a list of\nmethod infos. At each call_info …\n"],["RubyProf::AbstractPrinter","","RubyProf/AbstractPrinter.html","",""],["RubyProf::AggregateCallInfo","","RubyProf/AggregateCallInfo.html","",""],["RubyProf::CallInfo","","RubyProf/CallInfo.html","",""],["RubyProf::CallInfoPrinter","","RubyProf/CallInfoPrinter.html","","<p>Prints out the call graph based on CallInfo instances. This is mainly for\ndebugging purposes as it provides …\n"],["RubyProf::CallInfoVisitor","","RubyProf/CallInfoVisitor.html","",""],["RubyProf::CallStackPrinter","","RubyProf/CallStackPrinter.html","","<p>prints a HTML visualization of the call tree\n"],["RubyProf::CallTreePrinter","","RubyProf/CallTreePrinter.html","","<p>Generate profiling information in calltree format for use by kcachegrind\nand similar tools.\n"],["RubyProf::Cmd","","RubyProf/Cmd.html","",""],["RubyProf::DotPrinter","","RubyProf/DotPrinter.html","","<p>Generates a graphviz graph in dot format. To use the dot printer:\n\n<pre>result = RubyProf.profile do\n [code ...</pre>\n"],["RubyProf::FlatPrinter","","RubyProf/FlatPrinter.html","","<p>Generates flat profile reports as text. To use the flat printer:\n\n<pre>result = RubyProf.profile do\n [code ...</pre>\n"],["RubyProf::FlatPrinterWithLineNumbers","","RubyProf/FlatPrinterWithLineNumbers.html","","<p>Generates flat profile reports as text. To use the flat printer with line\nnumbers:\n\n<pre>result = RubyProf.profile ...</pre>\n"],["RubyProf::GraphHtmlPrinter","","RubyProf/GraphHtmlPrinter.html","","<p>Generates graph profile reports as html. To use the graph html printer:\n\n<pre>result = RubyProf.profile do\n ...</pre>\n"],["RubyProf::GraphPrinter","","RubyProf/GraphPrinter.html","","<p>Generates graph profile reports as text. To use the graph printer:\n\n<pre>result = RubyProf.profile do\n [code ...</pre>\n"],["RubyProf::MethodInfo","","RubyProf/MethodInfo.html","",""],["RubyProf::MultiPrinter","","RubyProf/MultiPrinter.html","","<p>Helper class to simplify printing profiles of several types from one\nprofiling run. Currently prints …\n"],["RubyProf::Profile","","RubyProf/Profile.html","",""],["RubyProf::ProfileTask","","RubyProf/ProfileTask.html","","<p>Define a task library for profiling unit tests with ruby-prof.\n<p>All of the options provided by the Rake:TestTask …\n"],["RubyProf::Thread","","RubyProf/Thread.html","",""],["<=>","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-3C-3D-3E","(other)",""],["aggregate_children","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-aggregate_children","()",""],["aggregate_parents","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-aggregate_parents","()",""],["application","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-application","()",""],["arguments","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-arguments","()",""],["call","Rack::RubyProf","Rack/RubyProf.html#method-i-call","(env)",""],["call_sequence","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-call_sequence","()",""],["called","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-called","()",""],["called","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-called","()",""],["children","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-children","()",""],["children","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-children","()",""],["children_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-children_time","()",""],["children_time","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-children_time","()",""],["children_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-children_time","()",""],["clean_output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-clean_output_directory","()",""],["clear_cached_values_which_depend_on_recursiveness","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-clear_cached_values_which_depend_on_recursiveness","()",""],["color","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-color","(p)",""],["convert","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-convert","(value)",""],["copy_image_files","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-copy_image_files","()",""],["cpu_frequency","RubyProf","RubyProf.html#method-c-cpu_frequency","()","<p>Measurements\n"],["create_link","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-create_link","(thread, overall_time, method)","<p>Creates a link to a method. Note that we do not create links to methods\nwhich are under the min_perecent …\n"],["create_output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-create_output_directory","()",""],["define","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-define","()","<p>Create the tasks defined by this task lib.\n"],["descendent_of","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-descendent_of","(other)",""],["detect_recursion","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-detect_recursion","(visited_methods = Hash.new(0))",""],["detect_recursion","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-detect_recursion","()",""],["detect_recursion","RubyProf::Thread","RubyProf/Thread.html#method-i-detect_recursion","()","<p>This method detect recursive calls in the call tree of a given thread It\nshould be called only once for …\n"],["dump","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-dump","(ci)",""],["eliminate!","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-eliminate-21","()","<p>eliminate call info from the call tree. adds self and wait time to parent\nand attaches called methods …\n"],["eliminate!","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-eliminate-21","()","<p>remove method from the call graph. should not be called directly.\n"],["eliminate_methods!","RubyProf::Profile","RubyProf/Profile.html#method-i-eliminate_methods-21","(matchers)","<p>eliminate some calls from the graph by merging the information into\ncallers. matchers can be a list of …\n"],["exclude_threads","RubyProf","RubyProf.html#method-c-exclude_threads","()","<p>Returns threads ruby-prof should exclude from profiling\n"],["exclude_threads=","RubyProf","RubyProf.html#method-c-exclude_threads-3D","(value)","<p>Specifies what threads ruby-prof should exclude from profiling\n"],["expansion","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-expansion","()",""],["figure_measure_mode","RubyProf","RubyProf.html#method-c-figure_measure_mode","()","<p>Checks if the user specified the clock mode via the RUBY_PROF_MEASURE_MODE\nenvironment variable\n"],["file","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-file","(method)",""],["file_link","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-file_link","(path, linenum)",""],["find_call","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-find_call","(other)","<p>find a specific call in list of children. returns nil if not found. note:\nthere can't be more than …\n"],["flat_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-flat_profile","()","<p>the name of the flat profile file\n"],["graph_link","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-graph_link","(call_info)",""],["graph_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-graph_profile","()","<p>the name of the graph profile file\n"],["inspect","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-inspect","()",""],["line","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-line","()",""],["link","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-link","(call_info)",""],["load_pre_execs","RubyProf::Cmd","RubyProf/Cmd.html#method-i-load_pre_execs","()",""],["load_pre_libs","RubyProf::Cmd","RubyProf/Cmd.html#method-i-load_pre_libs","()",""],["measure_allocations","RubyProf","RubyProf.html#method-c-measure_allocations","()",""],["measure_cpu_time","RubyProf","RubyProf.html#method-c-measure_cpu_time","()",""],["measure_gc_runs","RubyProf","RubyProf.html#method-c-measure_gc_runs","()",""],["measure_gc_time","RubyProf","RubyProf.html#method-c-measure_gc_time","()",""],["measure_memory","RubyProf","RubyProf.html#method-c-measure_memory","()",""],["measure_mode","RubyProf","RubyProf.html#method-c-measure_mode","()","<p>Returns what ruby-prof is measuring. Valid values include:\n<p>*RubyProf::PROCESS_TIME - Measure process …\n"],["measure_mode=","RubyProf","RubyProf.html#method-c-measure_mode-3D","(value)","<p>Specifies what ruby-prof should measure. Valid values include:\n<p>*RubyProf::PROCESS_TIME - Measure process …\n"],["measure_mode_string","RubyProf","RubyProf.html#method-c-measure_mode_string","()",""],["measure_process_time","RubyProf","RubyProf.html#method-c-measure_process_time","()",""],["measure_wall_time","RubyProf","RubyProf.html#method-c-measure_wall_time","()",""],["merge_call_tree","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-merge_call_tree","(other)","<p>merge two call trees. adds self, wait, and total time of other to self and\nmerges children of other into …\n"],["method_href","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-method_href","(method)",""],["method_href","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-method_href","(thread, method)",""],["method_name","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-method_name","(method)",""],["min_depth","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-min_depth","()",""],["min_percent","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-min_percent","()",""],["name","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-name","(call_info)",""],["new","Rack::RubyProf","Rack/RubyProf.html#method-c-new","(app, options = {})",""],["new","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-c-new","(result)","<p>Create a new printer.\n<p>result should be the output generated from a profiling run\n"],["new","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-c-new","(call_infos)",""],["new","RubyProf::CallInfoVisitor","RubyProf/CallInfoVisitor.html#method-c-new","(call_infos)",""],["new","RubyProf::Cmd","RubyProf/Cmd.html#method-c-new","()",""],["new","RubyProf::DotPrinter","RubyProf/DotPrinter.html#method-c-new","(result)","<p>Creates the DotPrinter using a RubyProf::Result.\n"],["new","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-c-new","(result)",""],["new","RubyProf::Profile","RubyProf/Profile.html#method-c-new","(p1 = v1, p2 = v2)","<p>Returns a new profiler.\n<p>Parameters\n<p>mode — Measure mode (optional). Specifies the profile measure mode. …\n"],["new","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-c-new","(name = :profile)",""],["non_recursive","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-non_recursive","()",""],["non_recursive?","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-non_recursive-3F","()",""],["non_recursive?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-non_recursive-3F","()",""],["option_parser","RubyProf::Cmd","RubyProf/Cmd.html#method-i-option_parser","()",""],["output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-output_directory","()",""],["parent","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-parent","()",""],["parents","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-parents","()",""],["parse_args","RubyProf::Cmd","RubyProf/Cmd.html#method-i-parse_args","()",""],["pause","RubyProf","RubyProf.html#method-c-pause","()",""],["pause","RubyProf::Profile","RubyProf/Profile.html#method-i-pause","()","<p>Pauses collecting profile data.\n"],["paused?","RubyProf::Profile","RubyProf/Profile.html#method-i-paused-3F","()","<p>Returns whether a profile is currently paused.\n"],["post_process","RubyProf::Profile","RubyProf/Profile.html#method-i-post_process","()","<p>This method gets called once profiling has been completed but before\nresults are returned to the user. …\n"],["print","Rack::RubyProf","Rack/RubyProf.html#method-i-print","(data, path)",""],["print","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Print a profiling report to the provided output.\n<p>output - Any IO object, including STDOUT or a file. …\n"],["print","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Specify print options.\n<p>options - Hash table\n\n<pre>:min_percent - Number 0 to 100 that specifes the minimum\n ...</pre>\n"],["print","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Specify print options.\n<p>options - Hash table\n\n<pre>:min_percent - Number 0 to 100 that specifes the minimum\n ...</pre>\n"],["print","RubyProf::DotPrinter","RubyProf/DotPrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Print a graph report to the provided output.\n<p>output - Any IO object, including STDOUT or a file. The default …\n"],["print","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-print","(output = STDOUT, options = {})",""],["print","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-print","(options)","<p>create profile files under options or the current directory. options is\nused as the base name for the …\n"],["print_commands","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_commands","()",""],["print_css","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_css","()",""],["print_file","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_file","()",""],["print_footer","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_footer","(thread)",""],["print_footer","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_footer","()",""],["print_header","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_header","(thread)",""],["print_header","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_header","()",""],["print_help","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_help","()",""],["print_java_script","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_java_script","()",""],["print_methods","RubyProf::FlatPrinterWithLineNumbers","RubyProf/FlatPrinterWithLineNumbers.html#method-i-print_methods","(thread)",""],["print_stack","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_stack","(call_info, parent_time)",""],["print_thread","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_thread","(thread)",""],["print_thread","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-print_thread","(thread)",""],["print_threads","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_threads","()",""],["print_threads","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-print_threads","()",""],["print_title_bar","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_title_bar","()",""],["profile","RubyProf","RubyProf.html#method-c-profile","(&block)","<p>Profile a block\n"],["profile","RubyProf::Profile","RubyProf/Profile.html#method-c-profile","(*args)","<p>Profiles the specified block and returns a RubyProf::Result object.\n"],["recalc_recursion","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-recalc_recursion","(visited_methods = Hash.new(0))",""],["recalc_recursion","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-recalc_recursion","()",""],["recalc_recursion","RubyProf::Thread","RubyProf/Thread.html#method-i-recalc_recursion","()",""],["recursive?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-recursive-3F","()",""],["resume","RubyProf","RubyProf.html#method-c-resume","()",""],["resume","RubyProf::Profile","RubyProf/Profile.html#method-i-resume","()","<p>Resumes recording profile data.\n"],["root?","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-root-3F","()",""],["root?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-root-3F","()",""],["roots_of","RubyProf::CallInfo","RubyProf/CallInfo.html#method-c-roots_of","(call_infos)",""],["run","RubyProf::Cmd","RubyProf/Cmd.html#method-i-run","()",""],["run_script","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-run_script","(script_path)","<p>Run script\n"],["running?","RubyProf","RubyProf.html#method-c-running-3F","()",""],["running?","RubyProf::Profile","RubyProf/Profile.html#method-i-running-3F","()","<p>Returns whether a profile is currently running.\n"],["self_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-self_time","()",""],["self_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-self_time","()",""],["setup_options","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-setup_options","(options = {})","<p>Specify print options.\n<p>options - Hash table\n\n<pre>:min_percent - Number 0 to 100 that specifes the minimum\n ...</pre>\n"],["setup_options","RubyProf::Cmd","RubyProf/Cmd.html#method-i-setup_options","()",""],["setup_options","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-setup_options","(options)",""],["sort_method","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-sort_method","()",""],["sort_method","RubyProf::FlatPrinter","RubyProf/FlatPrinter.html#method-i-sort_method","()","<p>Override for this printer to sort by self time by default\n"],["stack","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-stack","()",""],["stack_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-stack_profile","()","<p>the name of the call stack profile file\n"],["start","RubyProf","RubyProf.html#method-c-start","()",""],["start","RubyProf::Profile","RubyProf/Profile.html#method-i-start","()","<p>Starts recording profile data.\n"],["start_script","RubyProf","RubyProf.html#method-c-start_script","(script)","<p>Profiling\n"],["stop","RubyProf","RubyProf.html#method-c-stop","()",""],["stop","RubyProf::Profile","RubyProf/Profile.html#method-i-stop","()","<p>Stops collecting profile data.\n"],["sum","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-sum","(a)",""],["target","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-target","()",""],["template","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-template","()",""],["threads","RubyProf::Profile","RubyProf/Profile.html#method-i-threads","()","<p>Returns an array of RubyProf::Thread instances that were executed while the\nthe program was being run. …\n"],["threshold","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-threshold","()",""],["title","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-title","()",""],["to_s","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-to_s","()",""],["to_s","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-to_s","()",""],["to_s","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-to_s","()",""],["top_call_infos","RubyProf::Thread","RubyProf/Thread.html#method-i-top_call_infos","()",""],["top_methods","RubyProf::Thread","RubyProf/Thread.html#method-i-top_methods","()",""],["total_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-total_time","()",""],["total_time","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-total_time","(call_infos)",""],["total_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-total_time","()",""],["total_time","RubyProf::Thread","RubyProf/Thread.html#method-i-total_time","()",""],["tree_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-tree_profile","()","<p>the name of the callgrind profile file\n"],["visit","RubyProf::CallInfoVisitor","RubyProf/CallInfoVisitor.html#method-i-visit","(&block)",""],["wait_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-wait_time","()",""],["wait_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-wait_time","()",""],["LICENSE","","LICENSE.html","","<p>Copyright (C) 2005 - 2014 Shugo Maeda <shugo@ruby-lang.org> and\nCharlie Savage <cfis@savagexi.com> …\n"],["README","","README_rdoc.html","","<p>ruby-prof\n<p><img src=\"https://travis-ci.org/ruby-prof/ruby-prof.png?branch=master\"\nalt=\"Build Status\" /> …\n"],["flat","","examples/flat_txt.html","","<p>Flat Profiles\n<p>Flat profiles show the total amount of time spent in each method. As an\nexample, here is …\n"],["graph.html","","examples/graph_html.html","","<p><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”\n“www.w3.org/TR/html4/strict.dtd”> …\n"],["graph","","examples/graph_txt.html","","<p>Graph Profiles\n<p>Graph profiles show how long each method runs, which methods call it and\nwhich methods …\n"]]}}
|
1
|
+
var search_data = {"index":{"searchIndex":["rack","rubyprof","rubyprof","abstractprinter","aggregatecallinfo","callinfo","callinfoprinter","callinfovisitor","callstackprinter","calltreeprinter","cmd","dotprinter","flatprinter","flatprinterwithlinenumbers","graphhtmlprinter","graphprinter","methodinfo","multiprinter","profile","profiletask","thread","<=>()","aggregate_children()","aggregate_parents()","application()","arguments()","base64_image()","call()","call_sequence()","called()","called()","children()","children()","children_time()","children_time()","children_time()","clean_output_directory()","clear_cached_values_which_depend_on_recursiveness()","color()","convert()","cpu_frequency()","create_link()","create_output_directory()","define()","descendent_of()","detect_recursion()","detect_recursion()","detect_recursion()","dump()","eliminate!()","eliminate!()","eliminate_methods!()","exclude_threads()","exclude_threads=()","expansion()","figure_measure_mode()","file()","file_link()","find_call()","flat_profile()","graph_link()","graph_profile()","inspect()","line()","link()","load_pre_execs()","load_pre_libs()","measure_allocations()","measure_cpu_time()","measure_gc_runs()","measure_gc_time()","measure_memory()","measure_mode()","measure_mode=()","measure_mode_string()","measure_process_time()","measure_wall_time()","merge_call_tree()","method_href()","method_href()","method_name()","min_depth()","min_percent()","name()","new()","new()","new()","new()","new()","new()","new()","new()","new()","non_recursive()","non_recursive?()","non_recursive?()","open_asset()","option_parser()","output_directory()","parent()","parents()","parse_args()","pause()","pause()","paused?()","post_process()","print()","print()","print()","print()","print()","print()","print()","print_commands()","print_css()","print_file()","print_footer()","print_footer()","print_header()","print_header()","print_help()","print_java_script()","print_methods()","print_stack()","print_thread()","print_thread()","print_threads()","print_threads()","print_title_bar()","profile()","profile()","recalc_recursion()","recalc_recursion()","recalc_recursion()","recursive?()","resume()","resume()","root?()","root?()","roots_of()","run()","run_script()","running?()","running?()","self_time()","self_time()","setup_options()","setup_options()","setup_options()","sort_method()","sort_method()","stack()","stack_profile()","start()","start()","start_script()","stop()","stop()","sum()","target()","template()","threads()","threshold()","title()","to_s()","to_s()","to_s()","top_call_infos()","top_methods()","total_time()","total_time()","total_time()","total_time()","tree_profile()","visit()","wait_time()","wait_time()","license","readme","flat","graph.html","graph"],"longSearchIndex":["rack","rack::rubyprof","rubyprof","rubyprof::abstractprinter","rubyprof::aggregatecallinfo","rubyprof::callinfo","rubyprof::callinfoprinter","rubyprof::callinfovisitor","rubyprof::callstackprinter","rubyprof::calltreeprinter","rubyprof::cmd","rubyprof::dotprinter","rubyprof::flatprinter","rubyprof::flatprinterwithlinenumbers","rubyprof::graphhtmlprinter","rubyprof::graphprinter","rubyprof::methodinfo","rubyprof::multiprinter","rubyprof::profile","rubyprof::profiletask","rubyprof::thread","rubyprof::methodinfo#<=>()","rubyprof::methodinfo#aggregate_children()","rubyprof::methodinfo#aggregate_parents()","rubyprof::callstackprinter#application()","rubyprof::callstackprinter#arguments()","rubyprof::callstackprinter#base64_image()","rack::rubyprof#call()","rubyprof::callinfo#call_sequence()","rubyprof::aggregatecallinfo#called()","rubyprof::methodinfo#called()","rubyprof::aggregatecallinfo#children()","rubyprof::methodinfo#children()","rubyprof::aggregatecallinfo#children_time()","rubyprof::callinfo#children_time()","rubyprof::methodinfo#children_time()","rubyprof::profiletask#clean_output_directory()","rubyprof::methodinfo#clear_cached_values_which_depend_on_recursiveness()","rubyprof::callstackprinter#color()","rubyprof::calltreeprinter#convert()","rubyprof::cpu_frequency()","rubyprof::graphhtmlprinter#create_link()","rubyprof::profiletask#create_output_directory()","rubyprof::profiletask#define()","rubyprof::callinfo#descendent_of()","rubyprof::callinfo#detect_recursion()","rubyprof::methodinfo#detect_recursion()","rubyprof::thread#detect_recursion()","rubyprof::callstackprinter#dump()","rubyprof::callinfo#eliminate!()","rubyprof::methodinfo#eliminate!()","rubyprof::profile#eliminate_methods!()","rubyprof::exclude_threads()","rubyprof::exclude_threads=()","rubyprof::callstackprinter#expansion()","rubyprof::figure_measure_mode()","rubyprof::calltreeprinter#file()","rubyprof::graphhtmlprinter#file_link()","rubyprof::callinfo#find_call()","rubyprof::multiprinter#flat_profile()","rubyprof::callstackprinter#graph_link()","rubyprof::multiprinter#graph_profile()","rubyprof::callinfo#inspect()","rubyprof::aggregatecallinfo#line()","rubyprof::callstackprinter#link()","rubyprof::cmd#load_pre_execs()","rubyprof::cmd#load_pre_libs()","rubyprof::measure_allocations()","rubyprof::measure_cpu_time()","rubyprof::measure_gc_runs()","rubyprof::measure_gc_time()","rubyprof::measure_memory()","rubyprof::measure_mode()","rubyprof::measure_mode=()","rubyprof::measure_mode_string()","rubyprof::measure_process_time()","rubyprof::measure_wall_time()","rubyprof::callinfo#merge_call_tree()","rubyprof::callstackprinter#method_href()","rubyprof::graphhtmlprinter#method_href()","rubyprof::abstractprinter#method_name()","rubyprof::methodinfo#min_depth()","rubyprof::abstractprinter#min_percent()","rubyprof::callstackprinter#name()","rack::rubyprof::new()","rubyprof::abstractprinter::new()","rubyprof::aggregatecallinfo::new()","rubyprof::callinfovisitor::new()","rubyprof::cmd::new()","rubyprof::dotprinter::new()","rubyprof::multiprinter::new()","rubyprof::profile::new()","rubyprof::profiletask::new()","rubyprof::methodinfo#non_recursive()","rubyprof::callinfo#non_recursive?()","rubyprof::methodinfo#non_recursive?()","rubyprof::callstackprinter#open_asset()","rubyprof::cmd#option_parser()","rubyprof::profiletask#output_directory()","rubyprof::aggregatecallinfo#parent()","rubyprof::methodinfo#parents()","rubyprof::cmd#parse_args()","rubyprof::pause()","rubyprof::profile#pause()","rubyprof::profile#paused?()","rubyprof::profile#post_process()","rack::rubyprof#print()","rubyprof::abstractprinter#print()","rubyprof::callstackprinter#print()","rubyprof::calltreeprinter#print()","rubyprof::dotprinter#print()","rubyprof::graphhtmlprinter#print()","rubyprof::multiprinter#print()","rubyprof::callstackprinter#print_commands()","rubyprof::callstackprinter#print_css()","rubyprof::abstractprinter#print_file()","rubyprof::abstractprinter#print_footer()","rubyprof::callstackprinter#print_footer()","rubyprof::abstractprinter#print_header()","rubyprof::callstackprinter#print_header()","rubyprof::callstackprinter#print_help()","rubyprof::callstackprinter#print_java_script()","rubyprof::flatprinterwithlinenumbers#print_methods()","rubyprof::callstackprinter#print_stack()","rubyprof::abstractprinter#print_thread()","rubyprof::calltreeprinter#print_thread()","rubyprof::abstractprinter#print_threads()","rubyprof::calltreeprinter#print_threads()","rubyprof::callstackprinter#print_title_bar()","rubyprof::profile()","rubyprof::profile::profile()","rubyprof::callinfo#recalc_recursion()","rubyprof::methodinfo#recalc_recursion()","rubyprof::thread#recalc_recursion()","rubyprof::methodinfo#recursive?()","rubyprof::resume()","rubyprof::profile#resume()","rubyprof::callinfo#root?()","rubyprof::methodinfo#root?()","rubyprof::callinfo::roots_of()","rubyprof::cmd#run()","rubyprof::profiletask#run_script()","rubyprof::running?()","rubyprof::profile#running?()","rubyprof::aggregatecallinfo#self_time()","rubyprof::methodinfo#self_time()","rubyprof::abstractprinter#setup_options()","rubyprof::cmd#setup_options()","rubyprof::graphhtmlprinter#setup_options()","rubyprof::abstractprinter#sort_method()","rubyprof::flatprinter#sort_method()","rubyprof::callinfo#stack()","rubyprof::multiprinter#stack_profile()","rubyprof::start()","rubyprof::profile#start()","rubyprof::start_script()","rubyprof::stop()","rubyprof::profile#stop()","rubyprof::callstackprinter#sum()","rubyprof::aggregatecallinfo#target()","rubyprof::graphhtmlprinter#template()","rubyprof::profile#threads()","rubyprof::callstackprinter#threshold()","rubyprof::callstackprinter#title()","rubyprof::aggregatecallinfo#to_s()","rubyprof::callinfo#to_s()","rubyprof::methodinfo#to_s()","rubyprof::thread#top_call_infos()","rubyprof::thread#top_methods()","rubyprof::aggregatecallinfo#total_time()","rubyprof::callstackprinter#total_time()","rubyprof::methodinfo#total_time()","rubyprof::thread#total_time()","rubyprof::multiprinter#tree_profile()","rubyprof::callinfovisitor#visit()","rubyprof::aggregatecallinfo#wait_time()","rubyprof::methodinfo#wait_time()","","","","",""],"info":[["Rack","","Rack.html","",""],["Rack::RubyProf","","Rack/RubyProf.html","",""],["RubyProf","","RubyProf.html","","<p>The call info visitor class does a depth-first traversal across a list of\nmethod infos. At each call_info …\n"],["RubyProf::AbstractPrinter","","RubyProf/AbstractPrinter.html","",""],["RubyProf::AggregateCallInfo","","RubyProf/AggregateCallInfo.html","",""],["RubyProf::CallInfo","","RubyProf/CallInfo.html","",""],["RubyProf::CallInfoPrinter","","RubyProf/CallInfoPrinter.html","","<p>Prints out the call graph based on CallInfo instances. This is mainly for\ndebugging purposes as it provides …\n"],["RubyProf::CallInfoVisitor","","RubyProf/CallInfoVisitor.html","",""],["RubyProf::CallStackPrinter","","RubyProf/CallStackPrinter.html","","<p>prints a HTML visualization of the call tree\n"],["RubyProf::CallTreePrinter","","RubyProf/CallTreePrinter.html","","<p>Generate profiling information in calltree format for use by kcachegrind\nand similar tools.\n"],["RubyProf::Cmd","","RubyProf/Cmd.html","",""],["RubyProf::DotPrinter","","RubyProf/DotPrinter.html","","<p>Generates a graphviz graph in dot format. To use the dot printer:\n\n<pre>result = RubyProf.profile do\n [code ...</pre>\n"],["RubyProf::FlatPrinter","","RubyProf/FlatPrinter.html","","<p>Generates flat profile reports as text. To use the flat printer:\n\n<pre>result = RubyProf.profile do\n [code ...</pre>\n"],["RubyProf::FlatPrinterWithLineNumbers","","RubyProf/FlatPrinterWithLineNumbers.html","","<p>Generates flat profile reports as text. To use the flat printer with line\nnumbers:\n\n<pre>result = RubyProf.profile ...</pre>\n"],["RubyProf::GraphHtmlPrinter","","RubyProf/GraphHtmlPrinter.html","","<p>Generates graph profile reports as html. To use the graph html printer:\n\n<pre>result = RubyProf.profile do\n ...</pre>\n"],["RubyProf::GraphPrinter","","RubyProf/GraphPrinter.html","","<p>Generates graph profile reports as text. To use the graph printer:\n\n<pre>result = RubyProf.profile do\n [code ...</pre>\n"],["RubyProf::MethodInfo","","RubyProf/MethodInfo.html","",""],["RubyProf::MultiPrinter","","RubyProf/MultiPrinter.html","","<p>Helper class to simplify printing profiles of several types from one\nprofiling run. Currently prints …\n"],["RubyProf::Profile","","RubyProf/Profile.html","",""],["RubyProf::ProfileTask","","RubyProf/ProfileTask.html","","<p>Define a task library for profiling unit tests with ruby-prof.\n<p>All of the options provided by the Rake:TestTask …\n"],["RubyProf::Thread","","RubyProf/Thread.html","",""],["<=>","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-3C-3D-3E","(other)",""],["aggregate_children","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-aggregate_children","()",""],["aggregate_parents","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-aggregate_parents","()",""],["application","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-application","()",""],["arguments","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-arguments","()",""],["base64_image","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-base64_image","()",""],["call","Rack::RubyProf","Rack/RubyProf.html#method-i-call","(env)",""],["call_sequence","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-call_sequence","()",""],["called","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-called","()",""],["called","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-called","()",""],["children","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-children","()",""],["children","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-children","()",""],["children_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-children_time","()",""],["children_time","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-children_time","()",""],["children_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-children_time","()",""],["clean_output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-clean_output_directory","()",""],["clear_cached_values_which_depend_on_recursiveness","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-clear_cached_values_which_depend_on_recursiveness","()",""],["color","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-color","(p)",""],["convert","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-convert","(value)",""],["cpu_frequency","RubyProf","RubyProf.html#method-c-cpu_frequency","()","<p>Measurements\n"],["create_link","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-create_link","(thread, overall_time, method)","<p>Creates a link to a method. Note that we do not create links to methods\nwhich are under the min_perecent …\n"],["create_output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-create_output_directory","()",""],["define","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-define","()","<p>Create the tasks defined by this task lib.\n"],["descendent_of","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-descendent_of","(other)",""],["detect_recursion","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-detect_recursion","(visited_methods = Hash.new(0))",""],["detect_recursion","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-detect_recursion","()",""],["detect_recursion","RubyProf::Thread","RubyProf/Thread.html#method-i-detect_recursion","()","<p>This method detect recursive calls in the call tree of a given thread It\nshould be called only once for …\n"],["dump","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-dump","(ci)",""],["eliminate!","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-eliminate-21","()","<p>eliminate call info from the call tree. adds self and wait time to parent\nand attaches called methods …\n"],["eliminate!","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-eliminate-21","()","<p>remove method from the call graph. should not be called directly.\n"],["eliminate_methods!","RubyProf::Profile","RubyProf/Profile.html#method-i-eliminate_methods-21","(matchers)","<p>eliminate some calls from the graph by merging the information into\ncallers. matchers can be a list of …\n"],["exclude_threads","RubyProf","RubyProf.html#method-c-exclude_threads","()","<p>Returns threads ruby-prof should exclude from profiling\n"],["exclude_threads=","RubyProf","RubyProf.html#method-c-exclude_threads-3D","(value)","<p>Specifies what threads ruby-prof should exclude from profiling\n"],["expansion","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-expansion","()",""],["figure_measure_mode","RubyProf","RubyProf.html#method-c-figure_measure_mode","()","<p>Checks if the user specified the clock mode via the RUBY_PROF_MEASURE_MODE\nenvironment variable\n"],["file","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-file","(method)",""],["file_link","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-file_link","(path, linenum)",""],["find_call","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-find_call","(other)","<p>find a specific call in list of children. returns nil if not found. note:\nthere can't be more than …\n"],["flat_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-flat_profile","()","<p>the name of the flat profile file\n"],["graph_link","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-graph_link","(call_info)",""],["graph_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-graph_profile","()","<p>the name of the graph profile file\n"],["inspect","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-inspect","()",""],["line","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-line","()",""],["link","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-link","(call_info)",""],["load_pre_execs","RubyProf::Cmd","RubyProf/Cmd.html#method-i-load_pre_execs","()",""],["load_pre_libs","RubyProf::Cmd","RubyProf/Cmd.html#method-i-load_pre_libs","()",""],["measure_allocations","RubyProf","RubyProf.html#method-c-measure_allocations","()",""],["measure_cpu_time","RubyProf","RubyProf.html#method-c-measure_cpu_time","()",""],["measure_gc_runs","RubyProf","RubyProf.html#method-c-measure_gc_runs","()",""],["measure_gc_time","RubyProf","RubyProf.html#method-c-measure_gc_time","()",""],["measure_memory","RubyProf","RubyProf.html#method-c-measure_memory","()",""],["measure_mode","RubyProf","RubyProf.html#method-c-measure_mode","()","<p>Returns what ruby-prof is measuring. Valid values include:\n<p>*RubyProf::PROCESS_TIME - Measure process …\n"],["measure_mode=","RubyProf","RubyProf.html#method-c-measure_mode-3D","(value)","<p>Specifies what ruby-prof should measure. Valid values include:\n<p>*RubyProf::PROCESS_TIME - Measure process …\n"],["measure_mode_string","RubyProf","RubyProf.html#method-c-measure_mode_string","()",""],["measure_process_time","RubyProf","RubyProf.html#method-c-measure_process_time","()",""],["measure_wall_time","RubyProf","RubyProf.html#method-c-measure_wall_time","()",""],["merge_call_tree","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-merge_call_tree","(other)","<p>merge two call trees. adds self, wait, and total time of other to self and\nmerges children of other into …\n"],["method_href","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-method_href","(method)",""],["method_href","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-method_href","(thread, method)",""],["method_name","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-method_name","(method)",""],["min_depth","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-min_depth","()",""],["min_percent","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-min_percent","()",""],["name","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-name","(call_info)",""],["new","Rack::RubyProf","Rack/RubyProf.html#method-c-new","(app, options = {})",""],["new","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-c-new","(result)","<p>Create a new printer.\n<p>result should be the output generated from a profiling run\n"],["new","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-c-new","(call_infos)",""],["new","RubyProf::CallInfoVisitor","RubyProf/CallInfoVisitor.html#method-c-new","(call_infos)",""],["new","RubyProf::Cmd","RubyProf/Cmd.html#method-c-new","()",""],["new","RubyProf::DotPrinter","RubyProf/DotPrinter.html#method-c-new","(result)","<p>Creates the DotPrinter using a RubyProf::Result.\n"],["new","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-c-new","(result)",""],["new","RubyProf::Profile","RubyProf/Profile.html#method-c-new","(p1 = v1, p2 = v2)","<p>Returns a new profiler.\n<p>Parameters\n<p>mode — Measure mode (optional). Specifies the profile measure mode. …\n"],["new","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-c-new","(name = :profile)",""],["non_recursive","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-non_recursive","()",""],["non_recursive?","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-non_recursive-3F","()",""],["non_recursive?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-non_recursive-3F","()",""],["open_asset","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-open_asset","(file)",""],["option_parser","RubyProf::Cmd","RubyProf/Cmd.html#method-i-option_parser","()",""],["output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-output_directory","()",""],["parent","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-parent","()",""],["parents","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-parents","()",""],["parse_args","RubyProf::Cmd","RubyProf/Cmd.html#method-i-parse_args","()",""],["pause","RubyProf","RubyProf.html#method-c-pause","()",""],["pause","RubyProf::Profile","RubyProf/Profile.html#method-i-pause","()","<p>Pauses collecting profile data.\n"],["paused?","RubyProf::Profile","RubyProf/Profile.html#method-i-paused-3F","()","<p>Returns whether a profile is currently paused.\n"],["post_process","RubyProf::Profile","RubyProf/Profile.html#method-i-post_process","()","<p>This method gets called once profiling has been completed but before\nresults are returned to the user. …\n"],["print","Rack::RubyProf","Rack/RubyProf.html#method-i-print","(data, path)",""],["print","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Print a profiling report to the provided output.\n<p>output - Any IO object, including STDOUT or a file. …\n"],["print","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Specify print options.\n<p>options - Hash table\n\n<pre>:min_percent - Number 0 to 100 that specifes the minimum\n ...</pre>\n"],["print","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Specify print options.\n<p>options - Hash table\n\n<pre>:min_percent - Number 0 to 100 that specifes the minimum\n ...</pre>\n"],["print","RubyProf::DotPrinter","RubyProf/DotPrinter.html#method-i-print","(output = STDOUT, options = {})","<p>Print a graph report to the provided output.\n<p>output - Any IO object, including STDOUT or a file. The default …\n"],["print","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-print","(output = STDOUT, options = {})",""],["print","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-print","(options)","<p>create profile files under options or the current directory. options is\nused as the base name for the …\n"],["print_commands","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_commands","()",""],["print_css","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_css","()",""],["print_file","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_file","()",""],["print_footer","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_footer","(thread)",""],["print_footer","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_footer","()",""],["print_header","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_header","(thread)",""],["print_header","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_header","()",""],["print_help","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_help","()",""],["print_java_script","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_java_script","()",""],["print_methods","RubyProf::FlatPrinterWithLineNumbers","RubyProf/FlatPrinterWithLineNumbers.html#method-i-print_methods","(thread)",""],["print_stack","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_stack","(call_info, parent_time)",""],["print_thread","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_thread","(thread)",""],["print_thread","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-print_thread","(thread)",""],["print_threads","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-print_threads","()",""],["print_threads","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-print_threads","()",""],["print_title_bar","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-print_title_bar","()",""],["profile","RubyProf","RubyProf.html#method-c-profile","(&block)","<p>Profile a block\n"],["profile","RubyProf::Profile","RubyProf/Profile.html#method-c-profile","(*args)","<p>Profiles the specified block and returns a RubyProf::Result object.\n"],["recalc_recursion","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-recalc_recursion","(visited_methods = Hash.new(0))",""],["recalc_recursion","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-recalc_recursion","()",""],["recalc_recursion","RubyProf::Thread","RubyProf/Thread.html#method-i-recalc_recursion","()",""],["recursive?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-recursive-3F","()",""],["resume","RubyProf","RubyProf.html#method-c-resume","()",""],["resume","RubyProf::Profile","RubyProf/Profile.html#method-i-resume","()","<p>Resumes recording profile data.\n"],["root?","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-root-3F","()",""],["root?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-root-3F","()",""],["roots_of","RubyProf::CallInfo","RubyProf/CallInfo.html#method-c-roots_of","(call_infos)",""],["run","RubyProf::Cmd","RubyProf/Cmd.html#method-i-run","()",""],["run_script","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-run_script","(script_path)","<p>Run script\n"],["running?","RubyProf","RubyProf.html#method-c-running-3F","()",""],["running?","RubyProf::Profile","RubyProf/Profile.html#method-i-running-3F","()","<p>Returns whether a profile is currently running.\n"],["self_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-self_time","()",""],["self_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-self_time","()",""],["setup_options","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-setup_options","(options = {})","<p>Specify print options.\n<p>options - Hash table\n\n<pre>:min_percent - Number 0 to 100 that specifes the minimum\n ...</pre>\n"],["setup_options","RubyProf::Cmd","RubyProf/Cmd.html#method-i-setup_options","()",""],["setup_options","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-setup_options","(options)",""],["sort_method","RubyProf::AbstractPrinter","RubyProf/AbstractPrinter.html#method-i-sort_method","()",""],["sort_method","RubyProf::FlatPrinter","RubyProf/FlatPrinter.html#method-i-sort_method","()","<p>Override for this printer to sort by self time by default\n"],["stack","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-stack","()",""],["stack_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-stack_profile","()","<p>the name of the call stack profile file\n"],["start","RubyProf","RubyProf.html#method-c-start","()",""],["start","RubyProf::Profile","RubyProf/Profile.html#method-i-start","()","<p>Starts recording profile data.\n"],["start_script","RubyProf","RubyProf.html#method-c-start_script","(script)","<p>Profiling\n"],["stop","RubyProf","RubyProf.html#method-c-stop","()",""],["stop","RubyProf::Profile","RubyProf/Profile.html#method-i-stop","()","<p>Stops collecting profile data.\n"],["sum","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-sum","(a)",""],["target","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-target","()",""],["template","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-template","()",""],["threads","RubyProf::Profile","RubyProf/Profile.html#method-i-threads","()","<p>Returns an array of RubyProf::Thread instances that were executed while the\nthe program was being run. …\n"],["threshold","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-threshold","()",""],["title","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-title","()",""],["to_s","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-to_s","()",""],["to_s","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-to_s","()",""],["to_s","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-to_s","()",""],["top_call_infos","RubyProf::Thread","RubyProf/Thread.html#method-i-top_call_infos","()",""],["top_methods","RubyProf::Thread","RubyProf/Thread.html#method-i-top_methods","()",""],["total_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-total_time","()",""],["total_time","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-total_time","(call_infos)",""],["total_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-total_time","()",""],["total_time","RubyProf::Thread","RubyProf/Thread.html#method-i-total_time","()",""],["tree_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-tree_profile","()","<p>the name of the callgrind profile file\n"],["visit","RubyProf::CallInfoVisitor","RubyProf/CallInfoVisitor.html#method-i-visit","(&block)",""],["wait_time","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-wait_time","()",""],["wait_time","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-wait_time","()",""],["LICENSE","","LICENSE.html","","<p>Copyright (C) 2005 - 2014 Shugo Maeda <shugo@ruby-lang.org> and\nCharlie Savage <cfis@savagexi.com> …\n"],["README","","README_rdoc.html","","<p>ruby-prof\n<p><img src=\"https://travis-ci.org/ruby-prof/ruby-prof.png?branch=master\"\nalt=\"Build Status\" /> …\n"],["flat","","examples/flat_txt.html","","<p>Flat Profiles\n<p>Flat profiles show the total amount of time spent in each method. As an\nexample, here is …\n"],["graph.html","","examples/graph_html.html","","<p><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”\n“www.w3.org/TR/html4/strict.dtd”> …\n"],["graph","","examples/graph_txt.html","","<p>Graph Profiles\n<p>Graph profiles show how long each method runs, which methods call it and\nwhich methods …\n"]]}}
|
data/doc/js/search_index.js.gz
CHANGED
Binary file
|
data/doc/table_of_contents.html
CHANGED
@@ -328,6 +328,11 @@
|
|
328
328
|
—
|
329
329
|
<span class="container">RubyProf::CallStackPrinter</span>
|
330
330
|
|
331
|
+
<li class="method">
|
332
|
+
<a href="RubyProf/CallStackPrinter.html#method-i-base64_image">#base64_image</a>
|
333
|
+
—
|
334
|
+
<span class="container">RubyProf::CallStackPrinter</span>
|
335
|
+
|
331
336
|
<li class="method">
|
332
337
|
<a href="Rack/RubyProf.html#method-i-call">#call</a>
|
333
338
|
—
|
@@ -339,14 +344,14 @@
|
|
339
344
|
<span class="container">RubyProf::CallInfo</span>
|
340
345
|
|
341
346
|
<li class="method">
|
342
|
-
<a href="RubyProf/
|
347
|
+
<a href="RubyProf/MethodInfo.html#method-i-called">#called</a>
|
343
348
|
—
|
344
|
-
<span class="container">RubyProf::
|
349
|
+
<span class="container">RubyProf::MethodInfo</span>
|
345
350
|
|
346
351
|
<li class="method">
|
347
|
-
<a href="RubyProf/
|
352
|
+
<a href="RubyProf/AggregateCallInfo.html#method-i-called">#called</a>
|
348
353
|
—
|
349
|
-
<span class="container">RubyProf::
|
354
|
+
<span class="container">RubyProf::AggregateCallInfo</span>
|
350
355
|
|
351
356
|
<li class="method">
|
352
357
|
<a href="RubyProf/MethodInfo.html#method-i-children">#children</a>
|
@@ -393,11 +398,6 @@
|
|
393
398
|
—
|
394
399
|
<span class="container">RubyProf::CallTreePrinter</span>
|
395
400
|
|
396
|
-
<li class="method">
|
397
|
-
<a href="RubyProf/CallStackPrinter.html#method-i-copy_image_files">#copy_image_files</a>
|
398
|
-
—
|
399
|
-
<span class="container">RubyProf::CallStackPrinter</span>
|
400
|
-
|
401
401
|
<li class="method">
|
402
402
|
<a href="RubyProf/GraphHtmlPrinter.html#method-i-create_link">#create_link</a>
|
403
403
|
—
|
@@ -424,14 +424,14 @@
|
|
424
424
|
<span class="container">RubyProf::Thread</span>
|
425
425
|
|
426
426
|
<li class="method">
|
427
|
-
<a href="RubyProf/
|
427
|
+
<a href="RubyProf/CallInfo.html#method-i-detect_recursion">#detect_recursion</a>
|
428
428
|
—
|
429
|
-
<span class="container">RubyProf::
|
429
|
+
<span class="container">RubyProf::CallInfo</span>
|
430
430
|
|
431
431
|
<li class="method">
|
432
|
-
<a href="RubyProf/
|
432
|
+
<a href="RubyProf/MethodInfo.html#method-i-detect_recursion">#detect_recursion</a>
|
433
433
|
—
|
434
|
-
<span class="container">RubyProf::
|
434
|
+
<span class="container">RubyProf::MethodInfo</span>
|
435
435
|
|
436
436
|
<li class="method">
|
437
437
|
<a href="RubyProf/CallStackPrinter.html#method-i-dump">#dump</a>
|
@@ -439,14 +439,14 @@
|
|
439
439
|
<span class="container">RubyProf::CallStackPrinter</span>
|
440
440
|
|
441
441
|
<li class="method">
|
442
|
-
<a href="RubyProf/
|
442
|
+
<a href="RubyProf/CallInfo.html#method-i-eliminate-21">#eliminate!</a>
|
443
443
|
—
|
444
|
-
<span class="container">RubyProf::
|
444
|
+
<span class="container">RubyProf::CallInfo</span>
|
445
445
|
|
446
446
|
<li class="method">
|
447
|
-
<a href="RubyProf/
|
447
|
+
<a href="RubyProf/MethodInfo.html#method-i-eliminate-21">#eliminate!</a>
|
448
448
|
—
|
449
|
-
<span class="container">RubyProf::
|
449
|
+
<span class="container">RubyProf::MethodInfo</span>
|
450
450
|
|
451
451
|
<li class="method">
|
452
452
|
<a href="RubyProf/Profile.html#method-i-eliminate_methods-21">#eliminate_methods!</a>
|
@@ -519,14 +519,14 @@
|
|
519
519
|
<span class="container">RubyProf::CallInfo</span>
|
520
520
|
|
521
521
|
<li class="method">
|
522
|
-
<a href="RubyProf/
|
522
|
+
<a href="RubyProf/CallStackPrinter.html#method-i-method_href">#method_href</a>
|
523
523
|
—
|
524
|
-
<span class="container">RubyProf::
|
524
|
+
<span class="container">RubyProf::CallStackPrinter</span>
|
525
525
|
|
526
526
|
<li class="method">
|
527
|
-
<a href="RubyProf/
|
527
|
+
<a href="RubyProf/GraphHtmlPrinter.html#method-i-method_href">#method_href</a>
|
528
528
|
—
|
529
|
-
<span class="container">RubyProf::
|
529
|
+
<span class="container">RubyProf::GraphHtmlPrinter</span>
|
530
530
|
|
531
531
|
<li class="method">
|
532
532
|
<a href="RubyProf/AbstractPrinter.html#method-i-method_name">#method_name</a>
|
@@ -563,6 +563,11 @@
|
|
563
563
|
—
|
564
564
|
<span class="container">RubyProf::CallInfo</span>
|
565
565
|
|
566
|
+
<li class="method">
|
567
|
+
<a href="RubyProf/CallStackPrinter.html#method-i-open_asset">#open_asset</a>
|
568
|
+
—
|
569
|
+
<span class="container">RubyProf::CallStackPrinter</span>
|
570
|
+
|
566
571
|
<li class="method">
|
567
572
|
<a href="RubyProf/Cmd.html#method-i-option_parser">#option_parser</a>
|
568
573
|
—
|
@@ -604,39 +609,39 @@
|
|
604
609
|
<span class="container">RubyProf::Profile</span>
|
605
610
|
|
606
611
|
<li class="method">
|
607
|
-
<a href="RubyProf/
|
612
|
+
<a href="RubyProf/CallTreePrinter.html#method-i-print">#print</a>
|
608
613
|
—
|
609
|
-
<span class="container">RubyProf::
|
614
|
+
<span class="container">RubyProf::CallTreePrinter</span>
|
610
615
|
|
611
616
|
<li class="method">
|
612
|
-
<a href="RubyProf/
|
617
|
+
<a href="RubyProf/MultiPrinter.html#method-i-print">#print</a>
|
613
618
|
—
|
614
|
-
<span class="container">RubyProf::
|
619
|
+
<span class="container">RubyProf::MultiPrinter</span>
|
615
620
|
|
616
621
|
<li class="method">
|
617
|
-
<a href="RubyProf/
|
622
|
+
<a href="RubyProf/CallStackPrinter.html#method-i-print">#print</a>
|
618
623
|
—
|
619
|
-
<span class="container">RubyProf::
|
624
|
+
<span class="container">RubyProf::CallStackPrinter</span>
|
620
625
|
|
621
626
|
<li class="method">
|
622
|
-
<a href="
|
627
|
+
<a href="RubyProf/GraphHtmlPrinter.html#method-i-print">#print</a>
|
623
628
|
—
|
624
|
-
<span class="container">
|
629
|
+
<span class="container">RubyProf::GraphHtmlPrinter</span>
|
625
630
|
|
626
631
|
<li class="method">
|
627
|
-
<a href="RubyProf/
|
632
|
+
<a href="RubyProf/DotPrinter.html#method-i-print">#print</a>
|
628
633
|
—
|
629
|
-
<span class="container">RubyProf::
|
634
|
+
<span class="container">RubyProf::DotPrinter</span>
|
630
635
|
|
631
636
|
<li class="method">
|
632
|
-
<a href="RubyProf/
|
637
|
+
<a href="RubyProf/AbstractPrinter.html#method-i-print">#print</a>
|
633
638
|
—
|
634
|
-
<span class="container">RubyProf::
|
639
|
+
<span class="container">RubyProf::AbstractPrinter</span>
|
635
640
|
|
636
641
|
<li class="method">
|
637
|
-
<a href="RubyProf
|
642
|
+
<a href="Rack/RubyProf.html#method-i-print">#print</a>
|
638
643
|
—
|
639
|
-
<span class="container">RubyProf
|
644
|
+
<span class="container">Rack::RubyProf</span>
|
640
645
|
|
641
646
|
<li class="method">
|
642
647
|
<a href="RubyProf/CallStackPrinter.html#method-i-print_commands">#print_commands</a>
|
@@ -653,26 +658,26 @@
|
|
653
658
|
—
|
654
659
|
<span class="container">RubyProf::AbstractPrinter</span>
|
655
660
|
|
656
|
-
<li class="method">
|
657
|
-
<a href="RubyProf/AbstractPrinter.html#method-i-print_footer">#print_footer</a>
|
658
|
-
—
|
659
|
-
<span class="container">RubyProf::AbstractPrinter</span>
|
660
|
-
|
661
661
|
<li class="method">
|
662
662
|
<a href="RubyProf/CallStackPrinter.html#method-i-print_footer">#print_footer</a>
|
663
663
|
—
|
664
664
|
<span class="container">RubyProf::CallStackPrinter</span>
|
665
665
|
|
666
666
|
<li class="method">
|
667
|
-
<a href="RubyProf/
|
667
|
+
<a href="RubyProf/AbstractPrinter.html#method-i-print_footer">#print_footer</a>
|
668
668
|
—
|
669
|
-
<span class="container">RubyProf::
|
669
|
+
<span class="container">RubyProf::AbstractPrinter</span>
|
670
670
|
|
671
671
|
<li class="method">
|
672
672
|
<a href="RubyProf/AbstractPrinter.html#method-i-print_header">#print_header</a>
|
673
673
|
—
|
674
674
|
<span class="container">RubyProf::AbstractPrinter</span>
|
675
675
|
|
676
|
+
<li class="method">
|
677
|
+
<a href="RubyProf/CallStackPrinter.html#method-i-print_header">#print_header</a>
|
678
|
+
—
|
679
|
+
<span class="container">RubyProf::CallStackPrinter</span>
|
680
|
+
|
676
681
|
<li class="method">
|
677
682
|
<a href="RubyProf/CallStackPrinter.html#method-i-print_help">#print_help</a>
|
678
683
|
—
|
@@ -719,9 +724,9 @@
|
|
719
724
|
<span class="container">RubyProf::CallStackPrinter</span>
|
720
725
|
|
721
726
|
<li class="method">
|
722
|
-
<a href="RubyProf/
|
727
|
+
<a href="RubyProf/CallInfo.html#method-i-recalc_recursion">#recalc_recursion</a>
|
723
728
|
—
|
724
|
-
<span class="container">RubyProf::
|
729
|
+
<span class="container">RubyProf::CallInfo</span>
|
725
730
|
|
726
731
|
<li class="method">
|
727
732
|
<a href="RubyProf/Thread.html#method-i-recalc_recursion">#recalc_recursion</a>
|
@@ -729,9 +734,9 @@
|
|
729
734
|
<span class="container">RubyProf::Thread</span>
|
730
735
|
|
731
736
|
<li class="method">
|
732
|
-
<a href="RubyProf/
|
737
|
+
<a href="RubyProf/MethodInfo.html#method-i-recalc_recursion">#recalc_recursion</a>
|
733
738
|
—
|
734
|
-
<span class="container">RubyProf::
|
739
|
+
<span class="container">RubyProf::MethodInfo</span>
|
735
740
|
|
736
741
|
<li class="method">
|
737
742
|
<a href="RubyProf/MethodInfo.html#method-i-recursive-3F">#recursive?</a>
|
@@ -744,14 +749,14 @@
|
|
744
749
|
<span class="container">RubyProf::Profile</span>
|
745
750
|
|
746
751
|
<li class="method">
|
747
|
-
<a href="RubyProf/
|
752
|
+
<a href="RubyProf/MethodInfo.html#method-i-root-3F">#root?</a>
|
748
753
|
—
|
749
|
-
<span class="container">RubyProf::
|
754
|
+
<span class="container">RubyProf::MethodInfo</span>
|
750
755
|
|
751
756
|
<li class="method">
|
752
|
-
<a href="RubyProf/
|
757
|
+
<a href="RubyProf/CallInfo.html#method-i-root-3F">#root?</a>
|
753
758
|
—
|
754
|
-
<span class="container">RubyProf::
|
759
|
+
<span class="container">RubyProf::CallInfo</span>
|
755
760
|
|
756
761
|
<li class="method">
|
757
762
|
<a href="RubyProf/Cmd.html#method-i-run">#run</a>
|
@@ -778,11 +783,6 @@
|
|
778
783
|
—
|
779
784
|
<span class="container">RubyProf::MethodInfo</span>
|
780
785
|
|
781
|
-
<li class="method">
|
782
|
-
<a href="RubyProf/Cmd.html#method-i-setup_options">#setup_options</a>
|
783
|
-
—
|
784
|
-
<span class="container">RubyProf::Cmd</span>
|
785
|
-
|
786
786
|
<li class="method">
|
787
787
|
<a href="RubyProf/AbstractPrinter.html#method-i-setup_options">#setup_options</a>
|
788
788
|
—
|
@@ -794,15 +794,20 @@
|
|
794
794
|
<span class="container">RubyProf::GraphHtmlPrinter</span>
|
795
795
|
|
796
796
|
<li class="method">
|
797
|
-
<a href="RubyProf/
|
797
|
+
<a href="RubyProf/Cmd.html#method-i-setup_options">#setup_options</a>
|
798
798
|
—
|
799
|
-
<span class="container">RubyProf::
|
799
|
+
<span class="container">RubyProf::Cmd</span>
|
800
800
|
|
801
801
|
<li class="method">
|
802
802
|
<a href="RubyProf/AbstractPrinter.html#method-i-sort_method">#sort_method</a>
|
803
803
|
—
|
804
804
|
<span class="container">RubyProf::AbstractPrinter</span>
|
805
805
|
|
806
|
+
<li class="method">
|
807
|
+
<a href="RubyProf/FlatPrinter.html#method-i-sort_method">#sort_method</a>
|
808
|
+
—
|
809
|
+
<span class="container">RubyProf::FlatPrinter</span>
|
810
|
+
|
806
811
|
<li class="method">
|
807
812
|
<a href="RubyProf/CallInfo.html#method-i-stack">#stack</a>
|
808
813
|
—
|
@@ -853,11 +858,6 @@
|
|
853
858
|
—
|
854
859
|
<span class="container">RubyProf::CallStackPrinter</span>
|
855
860
|
|
856
|
-
<li class="method">
|
857
|
-
<a href="RubyProf/CallInfo.html#method-i-to_s">#to_s</a>
|
858
|
-
—
|
859
|
-
<span class="container">RubyProf::CallInfo</span>
|
860
|
-
|
861
861
|
<li class="method">
|
862
862
|
<a href="RubyProf/AggregateCallInfo.html#method-i-to_s">#to_s</a>
|
863
863
|
—
|
@@ -868,6 +868,11 @@
|
|
868
868
|
—
|
869
869
|
<span class="container">RubyProf::MethodInfo</span>
|
870
870
|
|
871
|
+
<li class="method">
|
872
|
+
<a href="RubyProf/CallInfo.html#method-i-to_s">#to_s</a>
|
873
|
+
—
|
874
|
+
<span class="container">RubyProf::CallInfo</span>
|
875
|
+
|
871
876
|
<li class="method">
|
872
877
|
<a href="RubyProf/Thread.html#method-i-top_call_infos">#top_call_infos</a>
|
873
878
|
—
|
@@ -878,6 +883,11 @@
|
|
878
883
|
—
|
879
884
|
<span class="container">RubyProf::Thread</span>
|
880
885
|
|
886
|
+
<li class="method">
|
887
|
+
<a href="RubyProf/Thread.html#method-i-total_time">#total_time</a>
|
888
|
+
—
|
889
|
+
<span class="container">RubyProf::Thread</span>
|
890
|
+
|
881
891
|
<li class="method">
|
882
892
|
<a href="RubyProf/MethodInfo.html#method-i-total_time">#total_time</a>
|
883
893
|
—
|
@@ -893,11 +903,6 @@
|
|
893
903
|
—
|
894
904
|
<span class="container">RubyProf::AggregateCallInfo</span>
|
895
905
|
|
896
|
-
<li class="method">
|
897
|
-
<a href="RubyProf/Thread.html#method-i-total_time">#total_time</a>
|
898
|
-
—
|
899
|
-
<span class="container">RubyProf::Thread</span>
|
900
|
-
|
901
906
|
<li class="method">
|
902
907
|
<a href="RubyProf/MultiPrinter.html#method-i-tree_profile">#tree_profile</a>
|
903
908
|
—
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'erb'
|
4
4
|
require 'fileutils'
|
5
|
+
require 'base64'
|
5
6
|
|
6
7
|
module RubyProf
|
7
8
|
# prints a HTML visualization of the call tree
|
@@ -69,7 +70,6 @@ module RubyProf
|
|
69
70
|
|
70
71
|
print_footer
|
71
72
|
|
72
|
-
copy_image_files
|
73
73
|
end
|
74
74
|
|
75
75
|
def print_stack(call_info, parent_time)
|
@@ -84,13 +84,13 @@ module RubyProf
|
|
84
84
|
display = visible ? "block" : "none"
|
85
85
|
@output.print "<li class=\"color#{color}\" style=\"display:#{display}\">"
|
86
86
|
if kids.empty?
|
87
|
-
@output.print "<
|
87
|
+
@output.print "<a href=\"#\" class=\"toggle empty\" ></a>"
|
88
88
|
else
|
89
89
|
visible_children = kids.any?{|ci| (ci.total_time/@overall_time)*100 >= threshold}
|
90
90
|
image = visible_children ? (expanded ? "minus" : "plus") : "empty"
|
91
|
-
@output.print "<
|
91
|
+
@output.print "<a href=\"#\" class=\"toggle #{image}\" ></a>"
|
92
92
|
end
|
93
|
-
@output.printf " %4.2f%% (%4.2f%%) %s %s
|
93
|
+
@output.printf "<span> %4.2f%% (%4.2f%%) %s %s</span>\n", percent_total, percent_parent, link(call_info), graph_link(call_info)
|
94
94
|
unless kids.empty?
|
95
95
|
if expanded
|
96
96
|
@output.print "<ul>"
|
@@ -180,18 +180,6 @@ module RubyProf
|
|
180
180
|
@options[:expansion] || 10.0
|
181
181
|
end
|
182
182
|
|
183
|
-
def copy_image_files
|
184
|
-
if @output.is_a?(File)
|
185
|
-
target_dir = File.dirname(@output.path)
|
186
|
-
image_dir = File.join(File.dirname(__FILE__), '..', 'images')
|
187
|
-
%w(empty plus minus).each do |img|
|
188
|
-
source_file = "#{image_dir}/#{img}.png"
|
189
|
-
target_file = "#{target_dir}/#{img}.png"
|
190
|
-
FileUtils.cp(source_file, target_file) unless File.exist?(target_file)
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
|
195
183
|
def print_header
|
196
184
|
@output.puts "<html><head>"
|
197
185
|
@output.puts '<meta http-equiv="content-type" content="text/html; charset=utf-8">'
|
@@ -208,525 +196,24 @@ module RubyProf
|
|
208
196
|
@output.puts '<div id="sentinel"></div></div></body></html>'
|
209
197
|
end
|
210
198
|
|
199
|
+
def open_asset(file)
|
200
|
+
path = File.join(File.expand_path('../../assets', __FILE__), file)
|
201
|
+
File.open(path, 'rb').read
|
202
|
+
end
|
203
|
+
|
211
204
|
def print_css
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
margin-right:0px;
|
220
|
-
margin-left:0px;
|
221
|
-
background: #ffffff;
|
222
|
-
}
|
223
|
-
ul {
|
224
|
-
margin-left:0px;
|
225
|
-
margin-top:0px;
|
226
|
-
margin-bottom:0px;
|
227
|
-
padding-left:0px;
|
228
|
-
list-style-type:none;
|
229
|
-
}
|
230
|
-
li {
|
231
|
-
margin-left:11px;
|
232
|
-
padding:0px;
|
233
|
-
white-space:nowrap;
|
234
|
-
border-top:1px solid #cccccc;
|
235
|
-
border-left:1px solid #cccccc;
|
236
|
-
border-bottom:none;
|
237
|
-
}
|
238
|
-
.thread {
|
239
|
-
margin-left:11px;
|
240
|
-
background:#708090;
|
241
|
-
padding-top:3px;
|
242
|
-
padding-left:12px;
|
243
|
-
padding-bottom:2px;
|
244
|
-
border-left:1px solid #CCCCCC;
|
245
|
-
border-top:1px solid #CCCCCC;
|
246
|
-
font-weight:bold;
|
247
|
-
}
|
248
|
-
.hidden {
|
249
|
-
display:none;
|
250
|
-
width:0px;
|
251
|
-
height:0px;
|
252
|
-
margin:0px;
|
253
|
-
padding:0px;
|
254
|
-
border-style:none;
|
255
|
-
}
|
256
|
-
.color01 { background:#adbdeb }
|
257
|
-
.color05 { background:#9daddb }
|
258
|
-
.color0 { background:#8d9dcb }
|
259
|
-
.color1 { background:#89bccb }
|
260
|
-
.color2 { background:#56e3e7 }
|
261
|
-
.color3 { background:#32cd70 }
|
262
|
-
.color4 { background:#a3d53c }
|
263
|
-
.color5 { background:#c4cb34 }
|
264
|
-
.color6 { background:#dcb66d }
|
265
|
-
.color7 { background:#cda59e }
|
266
|
-
.color8 { background:#be9d9c }
|
267
|
-
.color9 { background:#cf947a }
|
268
|
-
#commands {
|
269
|
-
font-size:10pt;
|
270
|
-
padding:10px;
|
271
|
-
margin-left:11px;
|
272
|
-
margin-bottom:0px;
|
273
|
-
margin-top:0px;
|
274
|
-
background:#708090;
|
275
|
-
border-top:1px solid #cccccc;
|
276
|
-
border-left:1px solid #cccccc;
|
277
|
-
border-bottom:none;
|
278
|
-
}
|
279
|
-
#titlebar {
|
280
|
-
font-size:10pt;
|
281
|
-
padding:10px;
|
282
|
-
margin-left:11px;
|
283
|
-
margin-bottom:0px;
|
284
|
-
margin-top:10px;
|
285
|
-
background:#8090a0;
|
286
|
-
border-top:1px solid #cccccc;
|
287
|
-
border-left:1px solid #cccccc;
|
288
|
-
border-bottom:none;
|
289
|
-
}
|
290
|
-
#help {
|
291
|
-
font-size:10pt;
|
292
|
-
padding:10px;
|
293
|
-
margin-left:11px;
|
294
|
-
margin-bottom:0px;
|
295
|
-
margin-top:0px;
|
296
|
-
background:#8090a0;
|
297
|
-
display:none;
|
298
|
-
border-top:1px solid #cccccc;
|
299
|
-
border-left:1px solid #cccccc;
|
300
|
-
border-bottom:none;
|
301
|
-
}
|
302
|
-
#sentinel {
|
303
|
-
height: 400px;
|
304
|
-
margin-left:11px;
|
305
|
-
background:#8090a0;
|
306
|
-
border-top:1px solid #cccccc;
|
307
|
-
border-left:1px solid #cccccc;
|
308
|
-
border-bottom:none;
|
309
|
-
}
|
310
|
-
input { margin-left:10px; }
|
311
|
-
-->
|
312
|
-
</style>
|
313
|
-
end_css
|
205
|
+
html = open_asset('call_stack_printer.css.html')
|
206
|
+
@output.puts html.gsub('%s', base64_image)
|
207
|
+
end
|
208
|
+
|
209
|
+
def base64_image
|
210
|
+
file = open_asset('call_stack_printer.png')
|
211
|
+
Base64.encode64(file).gsub(/\n/, '')
|
314
212
|
end
|
315
213
|
|
316
214
|
def print_java_script
|
317
|
-
|
318
|
-
|
319
|
-
/*
|
320
|
-
Copyright (C) 2005,2009 Stefan Kaes
|
321
|
-
skaes@railsexpress.de
|
322
|
-
*/
|
323
|
-
|
324
|
-
function rootNode() {
|
325
|
-
return currentThread;
|
326
|
-
}
|
327
|
-
|
328
|
-
function hideUL(node) {
|
329
|
-
var lis = node.childNodes
|
330
|
-
var l = lis.length;
|
331
|
-
for (var i=0; i < l ; i++ ) {
|
332
|
-
hideLI(lis[i]);
|
333
|
-
}
|
334
|
-
}
|
335
|
-
|
336
|
-
function showUL(node) {
|
337
|
-
var lis = node.childNodes;
|
338
|
-
var l = lis.length;
|
339
|
-
for (var i=0; i < l ; i++ ) {
|
340
|
-
showLI(lis[i]);
|
341
|
-
}
|
342
|
-
}
|
343
|
-
|
344
|
-
function findUlChild(li){
|
345
|
-
var ul = li.childNodes[2];
|
346
|
-
while (ul && ul.nodeName != "UL") {
|
347
|
-
ul = ul.nextSibling;
|
348
|
-
}
|
349
|
-
return ul;
|
350
|
-
}
|
351
|
-
|
352
|
-
function isLeafNode(li) {
|
353
|
-
var img = li.firstChild;
|
354
|
-
return (img.src.indexOf('empty.png') > -1);
|
355
|
-
}
|
356
|
-
|
357
|
-
function hideLI(li) {
|
358
|
-
if (isLeafNode(li))
|
359
|
-
return;
|
360
|
-
|
361
|
-
var img = li.firstChild;
|
362
|
-
img.src = 'plus.png';
|
363
|
-
|
364
|
-
var ul = findUlChild(li);
|
365
|
-
if (ul) {
|
366
|
-
ul.style.display = 'none';
|
367
|
-
hideUL(ul);
|
368
|
-
}
|
369
|
-
}
|
370
|
-
|
371
|
-
function showLI(li) {
|
372
|
-
if (isLeafNode(li))
|
373
|
-
return;
|
374
|
-
|
375
|
-
var img = li.firstChild;
|
376
|
-
img.src = 'minus.png';
|
377
|
-
|
378
|
-
var ul = findUlChild(li);
|
379
|
-
if (ul) {
|
380
|
-
ul.style.display = 'block';
|
381
|
-
showUL(ul);
|
382
|
-
}
|
383
|
-
}
|
384
|
-
|
385
|
-
function toggleLI(li) {
|
386
|
-
var img = li.firstChild;
|
387
|
-
if (img.src.indexOf("minus.png")>-1)
|
388
|
-
hideLI(li);
|
389
|
-
else {
|
390
|
-
if (img.src.indexOf("plus.png")>-1)
|
391
|
-
showLI(li);
|
392
|
-
}
|
393
|
-
}
|
394
|
-
|
395
|
-
function aboveThreshold(text, threshold) {
|
396
|
-
var match = text.match(/\d+[.,]\d+/);
|
397
|
-
return (match && parseFloat(match[0].replace(/,/, '.'))>=threshold);
|
398
|
-
}
|
399
|
-
|
400
|
-
function setThresholdLI(li, threshold) {
|
401
|
-
var img = li.firstChild;
|
402
|
-
var text = img.nextSibling;
|
403
|
-
var ul = findUlChild(li);
|
404
|
-
|
405
|
-
var visible = aboveThreshold(text.nodeValue, threshold) ? 1 : 0;
|
406
|
-
|
407
|
-
var count = 0;
|
408
|
-
if (ul) {
|
409
|
-
count = setThresholdUL(ul, threshold);
|
410
|
-
}
|
411
|
-
if (count>0) {
|
412
|
-
img.src = 'minus.png';
|
413
|
-
}
|
414
|
-
else {
|
415
|
-
img.src = 'empty.png';
|
416
|
-
}
|
417
|
-
if (visible) {
|
418
|
-
li.style.display = 'block'
|
419
|
-
}
|
420
|
-
else {
|
421
|
-
li.style.display = 'none'
|
422
|
-
}
|
423
|
-
return visible;
|
424
|
-
}
|
425
|
-
|
426
|
-
function setThresholdUL(node, threshold) {
|
427
|
-
var lis = node.childNodes;
|
428
|
-
var l = lis.length;
|
429
|
-
|
430
|
-
var count = 0;
|
431
|
-
for ( var i = 0; i < l ; i++ ) {
|
432
|
-
count = count + setThresholdLI(lis[i], threshold);
|
433
|
-
}
|
434
|
-
|
435
|
-
var visible = (count > 0) ? 1 : 0;
|
436
|
-
if (visible) {
|
437
|
-
node.style.display = 'block';
|
438
|
-
}
|
439
|
-
else {
|
440
|
-
node.style.display = 'none';
|
441
|
-
}
|
442
|
-
return visible;
|
443
|
-
}
|
444
|
-
|
445
|
-
function toggleChildren(img, event) {
|
446
|
-
event.cancelBubble=true;
|
447
|
-
|
448
|
-
if (img.src.indexOf('empty.png') > -1)
|
449
|
-
return;
|
450
|
-
|
451
|
-
var minus = (img.src.indexOf('minus.png') > -1);
|
452
|
-
|
453
|
-
if (minus) {
|
454
|
-
img.src = 'plus.png';
|
455
|
-
}
|
456
|
-
else
|
457
|
-
img.src = 'minus.png';
|
458
|
-
|
459
|
-
var li = img.parentNode;
|
460
|
-
var ul = findUlChild(li);
|
461
|
-
if (ul) {
|
462
|
-
if (minus)
|
463
|
-
ul.style.display = 'none';
|
464
|
-
else
|
465
|
-
ul.style.display = 'block';
|
466
|
-
}
|
467
|
-
if (minus)
|
468
|
-
moveSelectionIfNecessary(li);
|
469
|
-
}
|
470
|
-
|
471
|
-
function showChildren(li) {
|
472
|
-
var img = li.firstChild;
|
473
|
-
if (img.src.indexOf('empty.png') > -1)
|
474
|
-
return;
|
475
|
-
img.src = 'minus.png';
|
476
|
-
|
477
|
-
var ul = findUlChild(li);
|
478
|
-
if (ul) {
|
479
|
-
ul.style.display = 'block';
|
480
|
-
}
|
481
|
-
}
|
482
|
-
|
483
|
-
function setThreshold() {
|
484
|
-
var tv = document.getElementById("threshold").value;
|
485
|
-
if (tv.match(/[0-9]+([.,][0-9]+)?/)) {
|
486
|
-
var f = parseFloat(tv.replace(/,/, '.'));
|
487
|
-
var threads = document.getElementsByName("thread");
|
488
|
-
var l = threads.length;
|
489
|
-
for ( var i = 0; i < l ; i++ ) {
|
490
|
-
setThresholdUL(threads[i], f);
|
491
|
-
}
|
492
|
-
var p = selectedNode;
|
493
|
-
while (p && p.style.display=='none')
|
494
|
-
p=p.parentNode.parentNode;
|
495
|
-
if (p && p.nodeName=="LI")
|
496
|
-
selectNode(p);
|
497
|
-
}
|
498
|
-
else {
|
499
|
-
alert("Please specify a decimal number as threshold value!");
|
500
|
-
}
|
501
|
-
}
|
502
|
-
|
503
|
-
function collapseAll(event) {
|
504
|
-
event.cancelBubble=true;
|
505
|
-
var threads = document.getElementsByName("thread");
|
506
|
-
var l = threads.length;
|
507
|
-
for ( var i = 0; i < l ; i++ ) {
|
508
|
-
hideUL(threads[i]);
|
509
|
-
}
|
510
|
-
selectNode(rootNode(), null);
|
511
|
-
}
|
512
|
-
|
513
|
-
function expandAll(event) {
|
514
|
-
event.cancelBubble=true;
|
515
|
-
var threads = document.getElementsByName("thread");
|
516
|
-
var l = threads.length;
|
517
|
-
for ( var i = 0; i < l ; i++ ) {
|
518
|
-
showUL(threads[i]);
|
519
|
-
}
|
520
|
-
}
|
521
|
-
|
522
|
-
function toggleHelp(node) {
|
523
|
-
var help = document.getElementById("help");
|
524
|
-
if (node.value == "Show Help") {
|
525
|
-
node.value = "Hide Help";
|
526
|
-
help.style.display = 'block';
|
527
|
-
}
|
528
|
-
else {
|
529
|
-
node.value = "Show Help";
|
530
|
-
help.style.display = 'none';
|
531
|
-
}
|
532
|
-
}
|
533
|
-
|
534
|
-
var selectedNode = null;
|
535
|
-
var selectedColor = null;
|
536
|
-
var selectedThread = null;
|
537
|
-
|
538
|
-
function descendentOf(a,b){
|
539
|
-
while (a!=b && b!=null)
|
540
|
-
b=b.parentNode;
|
541
|
-
return (a==b);
|
542
|
-
}
|
543
|
-
|
544
|
-
function moveSelectionIfNecessary(node){
|
545
|
-
if (descendentOf(node, selectedNode))
|
546
|
-
selectNode(node, null);
|
547
|
-
}
|
548
|
-
|
549
|
-
function selectNode(node, event) {
|
550
|
-
if (event) {
|
551
|
-
event.cancelBubble = true;
|
552
|
-
thread = findThread(node);
|
553
|
-
selectThread(thread);
|
554
|
-
}
|
555
|
-
if (selectedNode) {
|
556
|
-
selectedNode.style.background = selectedColor;
|
557
|
-
}
|
558
|
-
selectedNode = node;
|
559
|
-
selectedColor = node.style.background;
|
560
|
-
selectedNode.style.background = "red";
|
561
|
-
selectedNode.scrollIntoView();
|
562
|
-
window.scrollBy(0,-400);
|
563
|
-
}
|
564
|
-
|
565
|
-
function moveUp(){
|
566
|
-
var p = selectedNode.previousSibling;
|
567
|
-
while (p && p.style.display == 'none')
|
568
|
-
p = p.previousSibling;
|
569
|
-
if (p && p.nodeName == "LI") {
|
570
|
-
selectNode(p, null);
|
571
|
-
}
|
572
|
-
}
|
573
|
-
|
574
|
-
function moveDown(){
|
575
|
-
var p = selectedNode.nextSibling;
|
576
|
-
while (p && p.style.display == 'none')
|
577
|
-
p = p.nextSibling;
|
578
|
-
if (p && p.nodeName == "LI") {
|
579
|
-
selectNode(p, null);
|
580
|
-
}
|
581
|
-
}
|
582
|
-
|
583
|
-
function moveLeft(){
|
584
|
-
var p = selectedNode.parentNode.parentNode;
|
585
|
-
if (p && p.nodeName=="LI") {
|
586
|
-
selectNode(p, null);
|
587
|
-
}
|
588
|
-
}
|
589
|
-
|
590
|
-
function moveRight(){
|
591
|
-
if (!isLeafNode(selectedNode)) {
|
592
|
-
showChildren(selectedNode);
|
593
|
-
var ul = findUlChild(selectedNode);
|
594
|
-
if (ul) {
|
595
|
-
selectNode(ul.firstChild, null);
|
596
|
-
}
|
597
|
-
}
|
598
|
-
}
|
599
|
-
|
600
|
-
function moveForward(){
|
601
|
-
if (isLeafNode(selectedNode)) {
|
602
|
-
var p = selectedNode;
|
603
|
-
while ((p.nextSibling == null || p.nextSibling.style.display=='none') && p.nodeName=="LI") {
|
604
|
-
p = p.parentNode.parentNode;
|
605
|
-
}
|
606
|
-
if (p.nodeName=="LI")
|
607
|
-
selectNode(p.nextSibling, null);
|
608
|
-
}
|
609
|
-
else {
|
610
|
-
moveRight();
|
611
|
-
}
|
612
|
-
}
|
613
|
-
|
614
|
-
function isExpandedNode(li){
|
615
|
-
var img = li.firstChild;
|
616
|
-
return(img.src.indexOf('minus.png')>-1);
|
617
|
-
}
|
618
|
-
|
619
|
-
function moveBackward(){
|
620
|
-
var p = selectedNode;
|
621
|
-
var q = p.previousSibling;
|
622
|
-
while (q != null && q.style.display=='none')
|
623
|
-
q = q.previousSibling;
|
624
|
-
if (q == null) {
|
625
|
-
p = p.parentNode.parentNode;
|
626
|
-
} else {
|
627
|
-
while (!isLeafNode(q) && isExpandedNode(q)) {
|
628
|
-
q = findUlChild(q).lastChild;
|
629
|
-
while (q.style.display=='none')
|
630
|
-
q = q.previousSibling;
|
631
|
-
}
|
632
|
-
p = q;
|
633
|
-
}
|
634
|
-
if (p.nodeName=="LI")
|
635
|
-
selectNode(p, null);
|
636
|
-
}
|
637
|
-
|
638
|
-
function moveHome() {
|
639
|
-
selectNode(currentThread);
|
640
|
-
}
|
641
|
-
|
642
|
-
var currentThreadIndex = null;
|
643
|
-
|
644
|
-
function findThread(node){
|
645
|
-
while (node && node.parentNode.nodeName!="BODY") {
|
646
|
-
node = node.parentNode;
|
647
|
-
}
|
648
|
-
return node.firstChild;
|
649
|
-
}
|
650
|
-
|
651
|
-
function selectThread(node){
|
652
|
-
var threads = document.getElementsByName("thread");
|
653
|
-
currentThread = node;
|
654
|
-
for (var i=0; i<threads.length; i++) {
|
655
|
-
if (threads[i]==currentThread.parentNode)
|
656
|
-
currentThreadIndex = i;
|
657
|
-
}
|
658
|
-
}
|
659
|
-
|
660
|
-
function nextThread(){
|
661
|
-
var threads = document.getElementsByName("thread");
|
662
|
-
if (currentThreadIndex==threads.length-1)
|
663
|
-
currentThreadIndex = 0;
|
664
|
-
else
|
665
|
-
currentThreadIndex += 1
|
666
|
-
currentThread = threads[currentThreadIndex].firstChild;
|
667
|
-
selectNode(currentThread, null);
|
668
|
-
}
|
669
|
-
|
670
|
-
function previousThread(){
|
671
|
-
var threads = document.getElementsByName("thread");
|
672
|
-
if (currentThreadIndex==0)
|
673
|
-
currentThreadIndex = threads.length-1;
|
674
|
-
else
|
675
|
-
currentThreadIndex -= 1
|
676
|
-
currentThread = threads[currentThreadIndex].firstChild;
|
677
|
-
selectNode(currentThread, null);
|
678
|
-
}
|
679
|
-
|
680
|
-
function switchThread(node, event){
|
681
|
-
event.cancelBubble = true;
|
682
|
-
selectThread(node.nextSibling.firstChild);
|
683
|
-
selectNode(currentThread, null);
|
684
|
-
}
|
685
|
-
|
686
|
-
function handleKeyEvent(event){
|
687
|
-
var code = event.charCode ? event.charCode : event.keyCode;
|
688
|
-
var str = String.fromCharCode(code);
|
689
|
-
switch (str) {
|
690
|
-
case "a": moveLeft(); break;
|
691
|
-
case "s": moveDown(); break;
|
692
|
-
case "d": moveRight(); break;
|
693
|
-
case "w": moveUp(); break;
|
694
|
-
case "f": moveForward(); break;
|
695
|
-
case "b": moveBackward(); break;
|
696
|
-
case "x": toggleChildren(selectedNode.firstChild, event); break;
|
697
|
-
case "*": toggleLI(selectedNode); break;
|
698
|
-
case "n": nextThread(); break;
|
699
|
-
case "h": moveHome(); break;
|
700
|
-
case "p": previousThread(); break;
|
701
|
-
}
|
702
|
-
}
|
703
|
-
document.onkeypress=function(event){ handleKeyEvent(event) };
|
704
|
-
|
705
|
-
window.onload=function(){
|
706
|
-
var images = document.getElementsByTagName("img");
|
707
|
-
for (var i=0; i<images.length; i++) {
|
708
|
-
var img = images[i];
|
709
|
-
if (img.className == "toggle") {
|
710
|
-
img.onclick = function(event){ toggleChildren(this, event); };
|
711
|
-
}
|
712
|
-
}
|
713
|
-
var divs = document.getElementsByTagName("div");
|
714
|
-
for (i=0; i<divs.length; i++) {
|
715
|
-
var div = divs[i];
|
716
|
-
if (div.className == "thread")
|
717
|
-
div.onclick = function(event){ switchThread(this, event) };
|
718
|
-
}
|
719
|
-
var lis = document.getElementsByTagName("li");
|
720
|
-
for (var i=0; i<lis.length; i++) {
|
721
|
-
lis[i].onclick = function(event){ selectNode(this, event); };
|
722
|
-
}
|
723
|
-
var threads = document.getElementsByName("thread");
|
724
|
-
currentThreadIndex = 0;
|
725
|
-
currentThread = threads[0].firstChild;
|
726
|
-
selectNode(currentThread, null);
|
727
|
-
}
|
728
|
-
</script>
|
729
|
-
end_java_script
|
215
|
+
html = open_asset('call_stack_printer.js.html')
|
216
|
+
@output.puts html
|
730
217
|
end
|
731
218
|
|
732
219
|
def print_title_bar
|
@@ -754,17 +241,17 @@ end_commands
|
|
754
241
|
def print_help
|
755
242
|
@output.puts <<-'end_help'
|
756
243
|
<div style="display: none;" id="help">
|
757
|
-
|
758
|
-
to hide all nodes marked with time values lower than <i>d</i>.<br>
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
244
|
+
• Enter a decimal value <i>d</i> into the threshold field and click "Apply"
|
245
|
+
to hide all nodes marked with time values lower than <i>d</i>.<br>
|
246
|
+
• Click on "Expand All" for full tree expansion.<br>
|
247
|
+
• Click on "Collapse All" to show only top level nodes.<br>
|
248
|
+
• Use a, s, d, w as in Quake or Urban Terror to navigate the tree.<br>
|
249
|
+
• Use f and b to navigate the tree in preorder forward and backwards.<br>
|
250
|
+
• Use x to toggle visibility of a subtree.<br>
|
251
|
+
• Use * to expand/collapse a whole subtree.<br>
|
252
|
+
• Use h to navigate to thread root.<br>
|
253
|
+
• Use n and p to navigate between threads.<br>
|
254
|
+
• Click on background to move focus to a subtree.<br>
|
768
255
|
</div>
|
769
256
|
end_help
|
770
257
|
end
|