ruby-prof 0.15.6 → 0.15.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/doc/created.rid CHANGED
@@ -1,4 +1,4 @@
1
- Sun, 22 Feb 2015 16:12:41 +0100
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 Sun, 10 Mar 2013 10:57:14 +0100
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 Sun, 22 Feb 2015 16:10:54 +0100
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 Sun, 22 Feb 2015 15:41:38 +0100
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">&para;</a> <a href="#top">&uarr;</a></span></h2>
164
164
 
165
- <p>ruby-prof requires Ruby 1.9.3 or higher.</p>
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&#39;ll need a C compiler so the
168
171
  extension can be compiled when it is installed.</p>
@@ -296,19 +299,16 @@ gem&#39;s bin/xxx command to load, you may want to also measure
296
299
  rubygems&#39; startup penalty. You can do this by calling into
297
300
  bin/ruby-prof directly, ex:</p>
298
301
 
299
- <p>$ gem which ruby-prof</p>
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
- <p>$ ruby g:/192/lib/ruby/gems/1.9.1/gems/ruby-prof-0.10.2/bin/ruby-prof
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
- <p>$ ruby g:/192/lib/ruby/gems/1.9.1/gems/ruby-prof-0.10.2/bin/ruby-prof
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">&para;</a> <a href="#top">&uarr;</a></span></h2>
314
314
 
@@ -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&#39;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 &mdash; 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 &lt;shugo@ruby-lang.org&gt; and\nCharlie Savage &lt;cfis@savagexi.com&gt; …\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>&lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”\n“www.w3.org/TR/html4/strict.dtd”&gt; …\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&#39;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 &mdash; 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 &lt;shugo@ruby-lang.org&gt; and\nCharlie Savage &lt;cfis@savagexi.com&gt; …\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>&lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”\n“www.w3.org/TR/html4/strict.dtd”&gt; …\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"]]}}
Binary file
@@ -328,6 +328,11 @@
328
328
  &mdash;
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
+ &mdash;
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
  &mdash;
@@ -339,14 +344,14 @@
339
344
  <span class="container">RubyProf::CallInfo</span>
340
345
 
341
346
  <li class="method">
342
- <a href="RubyProf/AggregateCallInfo.html#method-i-called">#called</a>
347
+ <a href="RubyProf/MethodInfo.html#method-i-called">#called</a>
343
348
  &mdash;
344
- <span class="container">RubyProf::AggregateCallInfo</span>
349
+ <span class="container">RubyProf::MethodInfo</span>
345
350
 
346
351
  <li class="method">
347
- <a href="RubyProf/MethodInfo.html#method-i-called">#called</a>
352
+ <a href="RubyProf/AggregateCallInfo.html#method-i-called">#called</a>
348
353
  &mdash;
349
- <span class="container">RubyProf::MethodInfo</span>
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
  &mdash;
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
- &mdash;
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
  &mdash;
@@ -424,14 +424,14 @@
424
424
  <span class="container">RubyProf::Thread</span>
425
425
 
426
426
  <li class="method">
427
- <a href="RubyProf/MethodInfo.html#method-i-detect_recursion">#detect_recursion</a>
427
+ <a href="RubyProf/CallInfo.html#method-i-detect_recursion">#detect_recursion</a>
428
428
  &mdash;
429
- <span class="container">RubyProf::MethodInfo</span>
429
+ <span class="container">RubyProf::CallInfo</span>
430
430
 
431
431
  <li class="method">
432
- <a href="RubyProf/CallInfo.html#method-i-detect_recursion">#detect_recursion</a>
432
+ <a href="RubyProf/MethodInfo.html#method-i-detect_recursion">#detect_recursion</a>
433
433
  &mdash;
434
- <span class="container">RubyProf::CallInfo</span>
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/MethodInfo.html#method-i-eliminate-21">#eliminate!</a>
442
+ <a href="RubyProf/CallInfo.html#method-i-eliminate-21">#eliminate!</a>
443
443
  &mdash;
444
- <span class="container">RubyProf::MethodInfo</span>
444
+ <span class="container">RubyProf::CallInfo</span>
445
445
 
446
446
  <li class="method">
447
- <a href="RubyProf/CallInfo.html#method-i-eliminate-21">#eliminate!</a>
447
+ <a href="RubyProf/MethodInfo.html#method-i-eliminate-21">#eliminate!</a>
448
448
  &mdash;
449
- <span class="container">RubyProf::CallInfo</span>
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/GraphHtmlPrinter.html#method-i-method_href">#method_href</a>
522
+ <a href="RubyProf/CallStackPrinter.html#method-i-method_href">#method_href</a>
523
523
  &mdash;
524
- <span class="container">RubyProf::GraphHtmlPrinter</span>
524
+ <span class="container">RubyProf::CallStackPrinter</span>
525
525
 
526
526
  <li class="method">
527
- <a href="RubyProf/CallStackPrinter.html#method-i-method_href">#method_href</a>
527
+ <a href="RubyProf/GraphHtmlPrinter.html#method-i-method_href">#method_href</a>
528
528
  &mdash;
529
- <span class="container">RubyProf::CallStackPrinter</span>
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
  &mdash;
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
+ &mdash;
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
  &mdash;
@@ -604,39 +609,39 @@
604
609
  <span class="container">RubyProf::Profile</span>
605
610
 
606
611
  <li class="method">
607
- <a href="RubyProf/CallStackPrinter.html#method-i-print">#print</a>
612
+ <a href="RubyProf/CallTreePrinter.html#method-i-print">#print</a>
608
613
  &mdash;
609
- <span class="container">RubyProf::CallStackPrinter</span>
614
+ <span class="container">RubyProf::CallTreePrinter</span>
610
615
 
611
616
  <li class="method">
612
- <a href="RubyProf/DotPrinter.html#method-i-print">#print</a>
617
+ <a href="RubyProf/MultiPrinter.html#method-i-print">#print</a>
613
618
  &mdash;
614
- <span class="container">RubyProf::DotPrinter</span>
619
+ <span class="container">RubyProf::MultiPrinter</span>
615
620
 
616
621
  <li class="method">
617
- <a href="RubyProf/AbstractPrinter.html#method-i-print">#print</a>
622
+ <a href="RubyProf/CallStackPrinter.html#method-i-print">#print</a>
618
623
  &mdash;
619
- <span class="container">RubyProf::AbstractPrinter</span>
624
+ <span class="container">RubyProf::CallStackPrinter</span>
620
625
 
621
626
  <li class="method">
622
- <a href="Rack/RubyProf.html#method-i-print">#print</a>
627
+ <a href="RubyProf/GraphHtmlPrinter.html#method-i-print">#print</a>
623
628
  &mdash;
624
- <span class="container">Rack::RubyProf</span>
629
+ <span class="container">RubyProf::GraphHtmlPrinter</span>
625
630
 
626
631
  <li class="method">
627
- <a href="RubyProf/GraphHtmlPrinter.html#method-i-print">#print</a>
632
+ <a href="RubyProf/DotPrinter.html#method-i-print">#print</a>
628
633
  &mdash;
629
- <span class="container">RubyProf::GraphHtmlPrinter</span>
634
+ <span class="container">RubyProf::DotPrinter</span>
630
635
 
631
636
  <li class="method">
632
- <a href="RubyProf/MultiPrinter.html#method-i-print">#print</a>
637
+ <a href="RubyProf/AbstractPrinter.html#method-i-print">#print</a>
633
638
  &mdash;
634
- <span class="container">RubyProf::MultiPrinter</span>
639
+ <span class="container">RubyProf::AbstractPrinter</span>
635
640
 
636
641
  <li class="method">
637
- <a href="RubyProf/CallTreePrinter.html#method-i-print">#print</a>
642
+ <a href="Rack/RubyProf.html#method-i-print">#print</a>
638
643
  &mdash;
639
- <span class="container">RubyProf::CallTreePrinter</span>
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
  &mdash;
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
- &mdash;
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
  &mdash;
664
664
  <span class="container">RubyProf::CallStackPrinter</span>
665
665
 
666
666
  <li class="method">
667
- <a href="RubyProf/CallStackPrinter.html#method-i-print_header">#print_header</a>
667
+ <a href="RubyProf/AbstractPrinter.html#method-i-print_footer">#print_footer</a>
668
668
  &mdash;
669
- <span class="container">RubyProf::CallStackPrinter</span>
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
  &mdash;
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
+ &mdash;
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
  &mdash;
@@ -719,9 +724,9 @@
719
724
  <span class="container">RubyProf::CallStackPrinter</span>
720
725
 
721
726
  <li class="method">
722
- <a href="RubyProf/MethodInfo.html#method-i-recalc_recursion">#recalc_recursion</a>
727
+ <a href="RubyProf/CallInfo.html#method-i-recalc_recursion">#recalc_recursion</a>
723
728
  &mdash;
724
- <span class="container">RubyProf::MethodInfo</span>
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/CallInfo.html#method-i-recalc_recursion">#recalc_recursion</a>
737
+ <a href="RubyProf/MethodInfo.html#method-i-recalc_recursion">#recalc_recursion</a>
733
738
  &mdash;
734
- <span class="container">RubyProf::CallInfo</span>
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/CallInfo.html#method-i-root-3F">#root?</a>
752
+ <a href="RubyProf/MethodInfo.html#method-i-root-3F">#root?</a>
748
753
  &mdash;
749
- <span class="container">RubyProf::CallInfo</span>
754
+ <span class="container">RubyProf::MethodInfo</span>
750
755
 
751
756
  <li class="method">
752
- <a href="RubyProf/MethodInfo.html#method-i-root-3F">#root?</a>
757
+ <a href="RubyProf/CallInfo.html#method-i-root-3F">#root?</a>
753
758
  &mdash;
754
- <span class="container">RubyProf::MethodInfo</span>
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
  &mdash;
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
- &mdash;
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
  &mdash;
@@ -794,15 +794,20 @@
794
794
  <span class="container">RubyProf::GraphHtmlPrinter</span>
795
795
 
796
796
  <li class="method">
797
- <a href="RubyProf/FlatPrinter.html#method-i-sort_method">#sort_method</a>
797
+ <a href="RubyProf/Cmd.html#method-i-setup_options">#setup_options</a>
798
798
  &mdash;
799
- <span class="container">RubyProf::FlatPrinter</span>
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
  &mdash;
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
+ &mdash;
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
  &mdash;
@@ -853,11 +858,6 @@
853
858
  &mdash;
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
- &mdash;
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
  &mdash;
@@ -868,6 +868,11 @@
868
868
  &mdash;
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
+ &mdash;
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
  &mdash;
@@ -878,6 +883,11 @@
878
883
  &mdash;
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
+ &mdash;
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
  &mdash;
@@ -893,11 +903,6 @@
893
903
  &mdash;
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
- &mdash;
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
  &mdash;
@@ -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 "<img src=\"empty.png\">"
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 "<img class=\"toggle\" src=\"#{image}.png\">"
91
+ @output.print "<a href=\"#\" class=\"toggle #{image}\" ></a>"
92
92
  end
93
- @output.printf " %4.2f%% (%4.2f%%) %s %s\n", percent_total, percent_parent, link(call_info), graph_link(call_info)
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
- @output.puts <<-'end_css'
213
- <style type="text/css">
214
- <!--
215
- body {
216
- font-size:70%;
217
- padding:0px;
218
- margin:5px;
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
- @output.puts <<-'end_java_script'
318
- <script type="text/javascript">
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
- <img src="empty.png"> Enter a decimal value <i>d</i> into the threshold field and click "Apply"
758
- to hide all nodes marked with time values lower than <i>d</i>.<br>
759
- <img src="empty.png"> Click on "Expand All" for full tree expansion.<br>
760
- <img src="empty.png"> Click on "Collapse All" to show only top level nodes.<br>
761
- <img src="empty.png"> Use a, s, d, w as in Quake or Urban Terror to navigate the tree.<br>
762
- <img src="empty.png"> Use f and b to navigate the tree in preorder forward and backwards.<br>
763
- <img src="empty.png"> Use x to toggle visibility of a subtree.<br>
764
- <img src="empty.png"> Use * to expand/collapse a whole subtree.<br>
765
- <img src="empty.png"> Use h to navigate to thread root.<br>
766
- <img src="empty.png"> Use n and p to navigate between threads.<br>
767
- <img src="empty.png"> Click on background to move focus to a subtree.<br>
244
+ &#8226; 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
+ &#8226; Click on "Expand All" for full tree expansion.<br>
247
+ &#8226; Click on "Collapse All" to show only top level nodes.<br>
248
+ &#8226; Use a, s, d, w as in Quake or Urban Terror to navigate the tree.<br>
249
+ &#8226; Use f and b to navigate the tree in preorder forward and backwards.<br>
250
+ &#8226; Use x to toggle visibility of a subtree.<br>
251
+ &#8226; Use * to expand/collapse a whole subtree.<br>
252
+ &#8226; Use h to navigate to thread root.<br>
253
+ &#8226; Use n and p to navigate between threads.<br>
254
+ &#8226; Click on background to move focus to a subtree.<br>
768
255
  </div>
769
256
  end_help
770
257
  end