ruby-prof 0.15.6 → 0.15.7

Sign up to get free protection for your applications and to get access to all the features.
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