ruby-prof 0.13.0 → 0.13.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -235,7 +235,7 @@ below it are the methods it called (children).</p>
235
235
  %self - The percentage of time spent in this method
236
236
  total - The time spent in this method and its children.
237
237
  self - The time spent in this method.
238
- children - The time spent in this method's children.
238
+ children - The time spent in this method&#39;s children.
239
239
  calls - The number of times this method was called.
240
240
  name - The name of the method.</pre>
241
241
 
@@ -263,7 +263,7 @@ parents are shown.</p>
263
263
 
264
264
  <pre>total - The time spent in the current method and it children on behalf of the parent method.
265
265
  self - The time spent in this method on behalf of the parent method.
266
- children - The time spent in this method's children on behalf of the parent.
266
+ children - The time spent in this method&#39;s children on behalf of the parent.
267
267
  calls - The number of times the parent method called this child</pre>
268
268
 
269
269
  <p>Looking at Integer#upto again, we see that it was called 500 times from
@@ -281,7 +281,7 @@ children are shown.</p>
281
281
 
282
282
  <pre>total - The time spent in the child, and its children, on behalf of the current method
283
283
  self - The time spent in the child on behalf of the current method.
284
- children - The time spent in the child's children (ie, granchildren) in behalf of the current method
284
+ children - The time spent in the child&#39;s children (ie, granchildren) in behalf of the current method
285
285
  calls - The number of times the child method was called by the current method.</pre>
286
286
 
287
287
  <p>Taking our example of Integer#upto, we see that it called five other
@@ -119,6 +119,10 @@
119
119
 
120
120
  <h1 id="label-ruby-prof">ruby-prof</h1>
121
121
 
122
+ <p><a href="https://travis-ci.org/ruby-prof/ruby-prof"><img
123
+ src="https://travis-ci.org/ruby-prof/ruby-prof.png?branch=master"
124
+ alt="Build Status" /></a></p>
125
+
122
126
  <h2 id="label-Overview">Overview</h2>
123
127
 
124
128
  <p>ruby-prof is a fast code profiler for Ruby. Its features include:</p>
@@ -151,8 +155,8 @@ href="README_rdoc.html">README</a>.</p>
151
155
 
152
156
  <p>ruby-prof requires Ruby 1.8.7 or 1.9.2 and higher.</p>
153
157
 
154
- <p>If you are running Linux or Unix youll need a C compiler so the extension
155
- can be compiled when it is installed.</p>
158
+ <p>If you are running Linux or Unix you&#39;ll need a C compiler so the
159
+ extension can be compiled when it is installed.</p>
156
160
 
157
161
  <p>If you are running Windows, then you may need to install the Windows
158
162
  specific RubyGem which includes an already built extension (see Install
@@ -164,8 +168,8 @@ section).</p>
164
168
 
165
169
  <pre>gem install ruby-prof</pre>
166
170
 
167
- <p>If youre on windows then a prebuilt binary gem is available. You may of
168
- course compile it yourself via use of devkit on MinGW.</p>
171
+ <p>If you&#39;re on windows then a prebuilt binary gem is available. You may
172
+ of course compile it yourself via use of devkit on MinGW.</p>
169
173
 
170
174
  <h2 id="label-Usage">Usage</h2>
171
175
 
@@ -182,7 +186,7 @@ For more information refer to the documentation of the ruby-prof command.</p>
182
186
  <p>The second way is to use the ruby-prof API to profile particular segments
183
187
  of code.</p>
184
188
 
185
- <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'ruby-prof'</span>
189
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;ruby-prof&#39;</span>
186
190
 
187
191
  <span class="ruby-comment"># Profile the code</span>
188
192
  <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">start</span>
@@ -198,7 +202,7 @@ of code.</p>
198
202
 
199
203
  <p>Alternatively, you can use a block to tell ruby-prof what to profile:</p>
200
204
 
201
- <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'ruby-prof'</span>
205
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;ruby-prof&#39;</span>
202
206
 
203
207
  <span class="ruby-comment"># Profile the code</span>
204
208
  <span class="ruby-identifier">result</span> = <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">profile</span> <span class="ruby-keyword">do</span>
@@ -214,7 +218,7 @@ of code.</p>
214
218
 
215
219
  <p>ruby-prof also supports pausing and resuming profiling runs.</p>
216
220
 
217
- <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'ruby-prof'</span>
221
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;ruby-prof&#39;</span>
218
222
 
219
223
  <span class="ruby-comment"># Profile the code</span>
220
224
  <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">start</span>
@@ -229,7 +233,7 @@ of code.</p>
229
233
  <p>Note that resume will automatically call start if a profiling run has not
230
234
  yet started. In addition, resume can also take a block:</p>
231
235
 
232
- <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'ruby-prof'</span>
236
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;ruby-prof&#39;</span>
233
237
 
234
238
  <span class="ruby-comment"># Profile the code</span>
235
239
  <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">resume</span> <span class="ruby-keyword">do</span>
@@ -249,10 +253,10 @@ results. This is useful for reducing connectivity in the call graph, making
249
253
  it easier to identify the source of performance problems when using a graph
250
254
  printer.</p>
251
255
 
252
- <p>For example, consider Integer#times: its hardly ever useful to know how
253
- much time is spent in the method itself. Were much more interested in how
254
- much the passed in block contributes to the time spent in the method which
255
- contains the Integer#times call.</p>
256
+ <p>For example, consider Integer#times: it&#39;s hardly ever useful to know
257
+ how much time is spent in the method itself. We&#39;re much more interested
258
+ in how much the passed in block contributes to the time spent in the method
259
+ which contains the Integer#times call.</p>
256
260
 
257
261
  <p>Methods are eliminated from the collected data by calling
258
262
  `eliminate_methods!` on the profiling result, before submitting it to a
@@ -279,9 +283,10 @@ profiling.</p>
279
283
 
280
284
  <h2 id="label-Benchmarking+full+load+time+including+rubygems+startup+cost+%3D%3D">Benchmarking full load time including rubygems startup cost ==</h2>
281
285
 
282
- <p>If you want to get a more accurate measurement of what takes all of a gem’s
283
- bin/xxx command to load, you may want to also measure rubygems’ startup
284
- penalty. You can do this by calling into bin/ruby-prof directly, ex:</p>
286
+ <p>If you want to get a more accurate measurement of what takes all of a
287
+ gem&#39;s bin/xxx command to load, you may want to also measure
288
+ rubygems&#39; startup penalty. You can do this by calling into
289
+ bin/ruby-prof directly, ex:</p>
285
290
 
286
291
  <p>$ gem which ruby-prof</p>
287
292
 
@@ -299,26 +304,28 @@ g:192binsome_installed_gem_command</p>
299
304
 
300
305
  <h2 id="label-Profiling+Tests">Profiling Tests</h2>
301
306
 
302
- <p>ruby-prof supports profiling tests cases written using Rubys built-in unit
303
- test framework (ie, test derived from Test::Unit::TestCase). To enable
304
- profiling simply add the following line of code to within your test class:</p>
307
+ <p>ruby-prof supports profiling tests cases written using Ruby&#39;s built-in
308
+ unit test framework (ie, test derived from Test::Unit::TestCase). To
309
+ enable profiling simply add the following line of code to within your test
310
+ class:</p>
305
311
 
306
312
  <pre>include RubyProf::Test</pre>
307
313
 
308
314
  <p>Each test method is profiled separately. ruby-prof will run each test
309
315
  method once as a warmup and then ten additional times to gather profile
310
316
  data. Note that the profile data will <strong>not</strong> include the
311
- classs setup or teardown methods.</p>
317
+ class&#39;s setup or teardown methods.</p>
312
318
 
313
319
  <p>Separate reports are generated for each method and saved, by default, in
314
- the test processs working directory. To change this, or other profiling
315
- options, modify your test classs PROFILE_OPTIONS hash table. To globally
316
- change test profiling options, modify RubyProf::Test::PROFILE_OPTIONS.</p>
320
+ the test process&#39;s working directory. To change this, or other
321
+ profiling options, modify your test class&#39;s PROFILE_OPTIONS hash table.
322
+ To globally change test profiling options, modify
323
+ RubyProf::Test::PROFILE_OPTIONS.</p>
317
324
 
318
325
  <h2 id="label-Profiling+Rails">Profiling Rails</h2>
319
326
 
320
327
  <p>To profile a Rails application it is vital to run it using production like
321
- settings (cache classes, cache view lookups, etc.). Otherwise, Rails
328
+ settings (cache classes, cache view lookups, etc.). Otherwise, Rail&#39;s
322
329
  dependency loading code will overwhelm any time spent in the application
323
330
  itself (our tests show that Rails dependency loading causes a roughly 6x
324
331
  slowdown). The best way to do this is create a new Rails environment,
@@ -334,14 +341,14 @@ likely turn off caching.</p>
334
341
  <p>Add the ruby-prof to your gemfile:</p>
335
342
 
336
343
  <pre>group :profile do
337
- gem 'ruby-prof'
344
+ gem &#39;ruby-prof&#39;
338
345
  end</pre>
339
346
  </li><li>
340
347
  <p>Add the ruby prof rack adapter to your middleware stack. One way to do
341
348
  this is by adding the following code to config.ru:</p>
342
349
 
343
350
  <pre class="ruby"><span class="ruby-keyword">if</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">env</span>.<span class="ruby-identifier">profile?</span>
344
- <span class="ruby-identifier">use</span> <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">RubyProf</span>, :<span class="ruby-identifier">path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'/temp/profile'</span>
351
+ <span class="ruby-identifier">use</span> <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">RubyProf</span>, :<span class="ruby-identifier">path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;/temp/profile&#39;</span>
345
352
  <span class="ruby-keyword">end</span>
346
353
  </pre>
347
354
 
@@ -373,7 +380,7 @@ profiling reports created by the previous request!</p>
373
380
  <p>Flat profiles show the overall time spent in each method. They are a good
374
381
  of quickly identifying which methods take the most time. An example of a
375
382
  flat profile and an explanation can be found in <a
376
- href="http://github.com/rdp/ruby-prof/tree/master/examples/flat.txt">examples/flat.txt</a>.</p>
383
+ href="http://github.com/ruby-prof/ruby-prof/tree/master/examples/flat.txt">examples/flat.txt</a>.</p>
377
384
 
378
385
  <p>There are several varieties of these – run $ ruby-prof –help</p>
379
386
 
@@ -382,13 +389,13 @@ addition, they also show which methods call the current method and which
382
389
  methods its calls. Thus they are good for understanding how methods gets
383
390
  called and provide insight into the flow of your program. An example text
384
391
  graph profile is located at <a
385
- href="http://github.com/rdp/ruby-prof/tree/master/examples/graph.txt">examples/graph.txt</a>.</p>
392
+ href="http://github.com/ruby-prof/ruby-prof/tree/master/examples/graph.txt">examples/graph.txt</a>.</p>
386
393
 
387
394
  <p>HTML Graph profiles are the same as graph profiles, except output is
388
395
  generated in hyper-linked HTML. Since graph profiles can be quite large,
389
396
  the embedded links make it much easier to navigate the results. An example
390
397
  html graph profile is located at <a
391
- href="http://github.com/rdp/ruby-prof/tree/master/examples/graph.html">examples/graph.html</a>.</p>
398
+ href="http://github.com/ruby-prof/ruby-prof/tree/master/examples/graph.html">examples/graph.html</a>.</p>
392
399
 
393
400
  <p>Call graphs output results in the calltree profile format which is used by
394
401
  KCachegrind. Call graph support was generously donated by Carl Shimer. More
@@ -398,14 +405,14 @@ site.</p>
398
405
 
399
406
  <p>Call stack reports produce a HTML visualization of the time spent in each
400
407
  execution path of the profiled code. An example can be found at <a
401
- href="http://github.com/rdp/ruby-prof/tree/master/examples/call_stack.html">examples/stack.html</a>.</p>
408
+ href="http://github.com/ruby-prof/ruby-prof/tree/master/examples/call_stack.html">examples/stack.html</a>.</p>
402
409
 
403
410
  <p>Another good example: [<a
404
411
  href="http://twitpic.com/28z94a">twitpic.com/28z94a</a>]</p>
405
412
 
406
- <p>Finally, theres a so called MultiPrinter which can generate several
413
+ <p>Finally, there&#39;s a so called MultiPrinter which can generate several
407
414
  reports in one profiling run. See <a
408
- href="http://github.com/rdp/ruby-prof/tree/master/examples/multi.stack.html">examples/multi.stack.html</a>.</p>
415
+ href="http://github.com/ruby-prof/ruby-prof/tree/master/examples/multi.stack.html">examples/multi.stack.html</a>.</p>
409
416
 
410
417
  <p>There is also a graphviz .dot visualiser.</p>
411
418
 
@@ -427,7 +434,7 @@ call graph report in text format</p>
427
434
  Creates a call graph report in HTML (separate files per thread)</p>
428
435
  </li><li>
429
436
  <p><a href="RubyProf/DotPrinter.html">RubyProf::DotPrinter</a> - Creates a
430
- call graph report in GraphViz's DOT format which can be converted to an
437
+ call graph report in GraphViz&#39;s DOT format which can be converted to an
431
438
  image</p>
432
439
  </li><li>
433
440
  <p><a href="RubyProf/CallTreePrinter.html">RubyProf::CallTreePrinter</a> -
@@ -497,8 +504,8 @@ significant CPU or disk time during a profiling run then the reported
497
504
  results will be too large.</p>
498
505
 
499
506
  <p>CPU time uses the CPU clock counter to measure time. The returned values
500
- are dependent on the correctly setting the CPUs frequency. This mode is
501
- only supported on Pentium or PowerPC platforms (linux only).</p>
507
+ are dependent on the correctly setting the CPU&#39;s frequency. This mode
508
+ is only supported on Pentium or PowerPC platforms (linux only).</p>
502
509
 
503
510
  <p>Object allocation reports show how many objects each method in a program
504
511
  allocates. This support was added by Sylvain Joyeux and requires a patched
@@ -510,16 +517,16 @@ This support was added by Alexander Dymo and requires a patched Ruby
510
517
  interpreter. For more information, see: <a
511
518
  href="http://rubyforge.org/tracker/index.php?func=detail&aid=17676&group_id=1814&atid=7062">rubyforge.org/tracker/index.php?func=detail&aid=17676&group_id=1814&atid=7062</a></p>
512
519
 
513
- <p>Garbage collection runs report how many times Rubys garbage collector is
514
- invoked during a profiling session. This support was added by Jeremy
520
+ <p>Garbage collection runs report how many times Ruby&#39;s garbage collector
521
+ is invoked during a profiling session. This support was added by Jeremy
515
522
  Kemper and requires a patched Ruby interpreter. For more information, see:
516
523
  <a
517
524
  href="http://rubyforge.org/tracker/index.php?func=detail&aid=17676&group_id=1814&atid=7062">rubyforge.org/tracker/index.php?func=detail&aid=17676&group_id=1814&atid=7062</a></p>
518
525
 
519
- <p>Garbage collection time reports how much time is spent in Rubys garbage
520
- collector during a profiling session. This support was added by Jeremy
521
- Kemper and requires a patched Ruby interpreter. For more information, see:
522
- <a
526
+ <p>Garbage collection time reports how much time is spent in Ruby&#39;s
527
+ garbage collector during a profiling session. This support was added by
528
+ Jeremy Kemper and requires a patched Ruby interpreter. For more
529
+ information, see: <a
523
530
  href="http://rubyforge.org/tracker/index.php?func=detail&aid=17676&group_id=1814&atid=7062">rubyforge.org/tracker/index.php?func=detail&aid=17676&group_id=1814&atid=7062</a></p>
524
531
 
525
532
  <p>To set the measurement:</p>
@@ -586,7 +593,7 @@ profiling run and is otherwise quiescent.</p>
586
593
 
587
594
  <p>On both platforms, cpu time is measured using the RDTSC assembly function
588
595
  provided by the Pentium and PowerPC platforms. CPU time is dependent on the
589
- cpus frequency. On Linux, ruby-prof attempts to read this value from
596
+ cpu&#39;s frequency. On Linux, ruby-prof attempts to read this value from
590
597
  “/proc/cpuinfo.” On Windows, you must manually specify the clock
591
598
  frequency. This can be done using the RUBY_PROF_CPU_FREQUENCY environment
592
599
  variable:</p>
@@ -603,18 +610,18 @@ variable:</p>
603
610
  context switches in 1.8. As a result, the timings ruby-prof reports for
604
611
  each thread may be slightly inaccurate. In particular, this will happen
605
612
  for newly spawned threads that go to sleep immediately (their first call).
606
- For instance, if you use Rubys timeout library to wait for 2 seconds, the
607
- 2 seconds will be assigned to the foreground thread and not the newly
613
+ For instance, if you use Ruby&#39;s timeout library to wait for 2 seconds,
614
+ the 2 seconds will be assigned to the foreground thread and not the newly
608
615
  created background thread. These errors can largely be avoided if the
609
616
  background thread performs any operation before going to sleep.</p>
610
617
 
611
618
  <h2 id="label-Performance">Performance</h2>
612
619
 
613
- <p>Significant effort has been put into reducing ruby-profs overhead as much
614
- as possible. Our tests show that the overhead associated with profiling
615
- code varies considerably with the code being profiled. Most programs will
616
- run approximately twice as slow while highly recursive programs (like the
617
- fibonacci series test) will run three times slower.</p>
620
+ <p>Significant effort has been put into reducing ruby-prof&#39;s overhead as
621
+ much as possible. Our tests show that the overhead associated with
622
+ profiling code varies considerably with the code being profiled. Most
623
+ programs will run approximately twice as slow while highly recursive
624
+ programs (like the fibonacci series test) will run three times slower.</p>
618
625
 
619
626
  <h2 id="label-License">License</h2>
620
627
 
@@ -623,10 +630,11 @@ fibonacci series test) will run three times slower.</p>
623
630
  <h2 id="label-Development">Development</h2>
624
631
 
625
632
  <p>Code is located at <a
626
- href="http://github.com/rdp/ruby-prof">github.com/rdp/ruby-prof</a></p>
633
+ href="https://github.com/ruby-prof/ruby-prof">github.com/ruby-prof/ruby-prof</a></p>
627
634
 
628
635
  <p>Google group/mailing list: <a
629
- href="http://groups.google.com/group/ruby-optimization">groups.google.com/group/ruby-optimization</a></p>
636
+ href="http://groups.google.com/group/ruby-optimization">groups.google.com/group/ruby-optimization</a>
637
+ or start a github issue.</p>
630
638
 
631
639
  </div>
632
640
 
@@ -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","test","thread","<=>()","aggregate_children()","aggregate_parents()","application()","arguments()","call()","call_sequence()","called()","called()","children()","children()","children_time()","children_time()","children_time()","clean_output_directory()","color()","convert()","copy_image_files()","cpu_frequency()","cpu_frequency=()","create_link()","create_output_directory()","define()","detect_recursion()","dump()","eliminate!()","eliminate!()","eliminate_methods!()","exclude_threads()","exclude_threads=()","expansion()","figure_measure_mode()","file()","file_link()","find_call()","flat_profile()","format_profile_total()","graph_link()","graph_profile()","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_name()","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()","option_parser()","output_dir()","output_directory()","parent()","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()","recursive?()","report_filename()","report_profile()","resume()","resume()","root?()","root?()","run()","run()","run_profile()","run_script()","run_test()","run_warmup()","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_methods()","total_time()","total_time()","total_time()","total_time()","tree_profile()","visit()","visit_call_info()","wait_time()","wait_time()","license","readme","flat","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::test","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::callstackprinter#color()","rubyprof::calltreeprinter#convert()","rubyprof::callstackprinter#copy_image_files()","rubyprof::cpu_frequency()","rubyprof::cpu_frequency=()","rubyprof::graphhtmlprinter#create_link()","rubyprof::profiletask#create_output_directory()","rubyprof::profiletask#define()","rubyprof::profile#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::test#format_profile_total()","rubyprof::callstackprinter#graph_link()","rubyprof::multiprinter#graph_profile()","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::test#measure_mode_name()","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::cmd#option_parser()","rubyprof::test#output_dir()","rubyprof::profiletask#output_directory()","rubyprof::aggregatecallinfo#parent()","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::methodinfo#recursive?()","rubyprof::test#report_filename()","rubyprof::test#report_profile()","rubyprof::resume()","rubyprof::profile#resume()","rubyprof::callinfo#root?()","rubyprof::methodinfo#root?()","rubyprof::cmd#run()","rubyprof::test#run()","rubyprof::test#run_profile()","rubyprof::profiletask#run_script()","rubyprof::test#run_test()","rubyprof::test#run_warmup()","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_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::callinfovisitor#visit_call_info()","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 thread’s\ncall stack. 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: …\n"],["RubyProf::Test","","RubyProf/Test.html","",""],["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","()",""],["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"],["cpu_frequency=","RubyProf","RubyProf.html#method-c-cpu_frequency-3D","(value)",""],["create_link","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-create_link","(thread, 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"],["detect_recursion","RubyProf::Profile","RubyProf/Profile.html#method-i-detect_recursion","(thread)","<p>This method detect recursive calls in the call graph.\n"],["dump","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-dump","(ci)",""],["eliminate!","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-eliminate-21","()","<p>eliminate call info from the call tree. adds self and wait time to parent\nand attaches called methods …\n"],["eliminate!","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-eliminate-21","()","<p>remove method from the call graph. should not be called directly.\n"],["eliminate_methods!","RubyProf::Profile","RubyProf/Profile.html#method-i-eliminate_methods-21","(matchers)","<p>eliminate some calls from the graph by merging the information into\ncallers. matchers can be a list of …\n"],["exclude_threads","RubyProf","RubyProf.html#method-c-exclude_threads","()","<p>Returns threads ruby-prof should exclude from profiling\n"],["exclude_threads=","RubyProf","RubyProf.html#method-c-exclude_threads-3D","(value)","<p>Specifies what threads ruby-prof should exclude from profiling\n"],["expansion","RubyProf::CallStackPrinter","RubyProf/CallStackPrinter.html#method-i-expansion","()",""],["figure_measure_mode","RubyProf","RubyProf.html#method-c-figure_measure_mode","()","<p>Checks if the user specified the clock mode via the RUBY_PROF_MEASURE_MODE\nenvironment variable\n"],["file","RubyProf::CallTreePrinter","RubyProf/CallTreePrinter.html#method-i-file","(method)",""],["file_link","RubyProf::GraphHtmlPrinter","RubyProf/GraphHtmlPrinter.html#method-i-file_link","(path, linenum)",""],["find_call","RubyProf::CallInfo","RubyProf/CallInfo.html#method-i-find_call","(other)","<p>find a specific call in list of children. returns nil if not found. note:\nthere can’t be more than one …\n"],["flat_profile","RubyProf::MultiPrinter","RubyProf/MultiPrinter.html#method-i-flat_profile","()","<p>the name of the flat profile file\n"],["format_profile_total","RubyProf::Test","RubyProf/Test.html#method-i-format_profile_total","(total, measure_mode)",""],["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"],["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_name","RubyProf::Test","RubyProf/Test.html#method-i-measure_mode_name","(measure_mode)",""],["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","(thread)",""],["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)",""],["option_parser","RubyProf::Cmd","RubyProf/Cmd.html#method-i-option_parser","()",""],["output_dir","RubyProf::Test","RubyProf/Test.html#method-i-output_dir","()",""],["output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-output_directory","()",""],["parent","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-parent","()",""],["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"],["recursive?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-recursive-3F","()",""],["report_filename","RubyProf::Test","RubyProf/Test.html#method-i-report_filename","(printer, measure_mode)","<p>The report filename is test_name + measure_mode + report_type\n"],["report_profile","RubyProf::Test","RubyProf/Test.html#method-i-report_profile","(data, measure_mode)",""],["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","()",""],["run","RubyProf::Cmd","RubyProf/Cmd.html#method-i-run","()",""],["run","RubyProf::Test","RubyProf/Test.html#method-i-run","(result)",""],["run_profile","RubyProf::Test","RubyProf/Test.html#method-i-run_profile","(measure_mode)",""],["run_script","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-run_script","(script_path)","<p>Run script\n"],["run_test","RubyProf::Test","RubyProf/Test.html#method-i-run_test","()",""],["run_warmup","RubyProf::Test","RubyProf/Test.html#method-i-run_warmup","()",""],["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_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)",""],["visit_call_info","RubyProf::CallInfoVisitor","RubyProf/CallInfoVisitor.html#method-i-visit_call_info","(call_info)",""],["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 - 20011 Shugo Maeda &lt;shugo@ruby-lang.org&gt; and\nCharlie Savage &lt;cfis@savagexi.com …\n"],["README","","README_rdoc.html","","<p>ruby-prof\n<p>Overview\n<p>ruby-prof is a fast code profiler for Ruby. Its features include:\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","","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","test","thread","<=>()","aggregate_children()","aggregate_parents()","application()","arguments()","call()","call_sequence()","called()","called()","children()","children()","children_time()","children_time()","children_time()","clean_output_directory()","color()","convert()","copy_image_files()","cpu_frequency()","cpu_frequency=()","create_link()","create_output_directory()","define()","detect_recursion()","dump()","eliminate!()","eliminate!()","eliminate_methods!()","exclude_threads()","exclude_threads=()","expansion()","figure_measure_mode()","file()","file_link()","find_call()","flat_profile()","format_profile_total()","graph_link()","graph_profile()","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_name()","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()","option_parser()","output_dir()","output_directory()","parent()","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()","recursive?()","report_filename()","report_profile()","resume()","resume()","root?()","root?()","run()","run()","run_profile()","run_script()","run_test()","run_warmup()","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_methods()","total_time()","total_time()","total_time()","total_time()","tree_profile()","visit()","visit_call_info()","wait_time()","wait_time()","license","readme","flat","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::test","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::callstackprinter#color()","rubyprof::calltreeprinter#convert()","rubyprof::callstackprinter#copy_image_files()","rubyprof::cpu_frequency()","rubyprof::cpu_frequency=()","rubyprof::graphhtmlprinter#create_link()","rubyprof::profiletask#create_output_directory()","rubyprof::profiletask#define()","rubyprof::profile#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::test#format_profile_total()","rubyprof::callstackprinter#graph_link()","rubyprof::multiprinter#graph_profile()","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::test#measure_mode_name()","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::cmd#option_parser()","rubyprof::test#output_dir()","rubyprof::profiletask#output_directory()","rubyprof::aggregatecallinfo#parent()","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::methodinfo#recursive?()","rubyprof::test#report_filename()","rubyprof::test#report_profile()","rubyprof::resume()","rubyprof::profile#resume()","rubyprof::callinfo#root?()","rubyprof::methodinfo#root?()","rubyprof::cmd#run()","rubyprof::test#run()","rubyprof::test#run_profile()","rubyprof::profiletask#run_script()","rubyprof::test#run_test()","rubyprof::test#run_warmup()","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_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::callinfovisitor#visit_call_info()","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\nthread&#39;s call stack. At each …\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: …\n"],["RubyProf::Test","","RubyProf/Test.html","",""],["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","()",""],["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"],["cpu_frequency=","RubyProf","RubyProf.html#method-c-cpu_frequency-3D","(value)",""],["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"],["detect_recursion","RubyProf::Profile","RubyProf/Profile.html#method-i-detect_recursion","(thread)","<p>This method detect recursive calls in the call graph.\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"],["format_profile_total","RubyProf::Test","RubyProf/Test.html#method-i-format_profile_total","(total, measure_mode)",""],["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"],["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_name","RubyProf::Test","RubyProf/Test.html#method-i-measure_mode_name","(measure_mode)",""],["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","(thread)",""],["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)",""],["option_parser","RubyProf::Cmd","RubyProf/Cmd.html#method-i-option_parser","()",""],["output_dir","RubyProf::Test","RubyProf/Test.html#method-i-output_dir","()",""],["output_directory","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-output_directory","()",""],["parent","RubyProf::AggregateCallInfo","RubyProf/AggregateCallInfo.html#method-i-parent","()",""],["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"],["recursive?","RubyProf::MethodInfo","RubyProf/MethodInfo.html#method-i-recursive-3F","()",""],["report_filename","RubyProf::Test","RubyProf/Test.html#method-i-report_filename","(printer, measure_mode)","<p>The report filename is test_name + measure_mode + report_type\n"],["report_profile","RubyProf::Test","RubyProf/Test.html#method-i-report_profile","(data, measure_mode)",""],["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","()",""],["run","RubyProf::Cmd","RubyProf/Cmd.html#method-i-run","()",""],["run","RubyProf::Test","RubyProf/Test.html#method-i-run","(result)",""],["run_profile","RubyProf::Test","RubyProf/Test.html#method-i-run_profile","(measure_mode)",""],["run_script","RubyProf::ProfileTask","RubyProf/ProfileTask.html#method-i-run_script","(script_path)","<p>Run script\n"],["run_test","RubyProf::Test","RubyProf/Test.html#method-i-run_test","()",""],["run_warmup","RubyProf::Test","RubyProf/Test.html#method-i-run_warmup","()",""],["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_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)",""],["visit_call_info","RubyProf::CallInfoVisitor","RubyProf/CallInfoVisitor.html#method-i-visit_call_info","(call_info)",""],["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 - 20011 Shugo Maeda &lt;shugo@ruby-lang.org&gt; and\nCharlie Savage &lt;cfis@savagexi.com …\n"],["README","","README_rdoc.html","","<p>ruby-prof\n<p><img src=\"https://travis-ci.org/ruby-prof/ruby-prof.png?branch=master\"\nalt=\"Build Status\" /> …\n"],["flat","","examples/flat_txt.html","","<p>Flat Profiles\n<p>Flat profiles show the total amount of time spent in each method. As an\nexample, here is …\n"],["graph","","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"]]}}
@@ -41,7 +41,7 @@ end
41
41
  # end
42
42
 
43
43
  require 'rubygems'
44
- unless Gem.win_platform? || RUBY_PLATFORM =~ /darwin/
44
+ unless Gem.win_platform? || RUBY_PLATFORM =~ /(darwin|openbsd)/
45
45
  $LDFLAGS += " -lrt" # for clock_gettime
46
46
  end
47
47
  add_define("RUBY_VERSION", RUBY_VERSION.gsub('.', ''))
@@ -1,7 +1,7 @@
1
1
  /* Copyright (C) 2005-2013 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
2
2
  Please see the LICENSE file for copyright and distribution information */
3
3
 
4
- #define RUBY_PROF_VERSION "0.13.0" // as a string, for easy parsing from rake files
4
+ #define RUBY_PROF_VERSION "0.13.1" // as a string, for easy parsing from rake files
5
5
  #define RUBY_PROF_VERSION_MAJ 0
6
6
  #define RUBY_PROF_VERSION_MIN 13
7
- #define RUBY_PROF_VERSION_MIC 0
7
+ #define RUBY_PROF_VERSION_MIC 1
@@ -47,8 +47,7 @@ module RubyProf
47
47
  # links to methods which are under the min_perecent
48
48
  # specified by the user, since they will not be
49
49
  # printed out.
50
- def create_link(thread, method)
51
- overall_time = thread.total_time
50
+ def create_link(thread, overall_time, method)
52
51
  total_percent = (method.total_time/overall_time) * 100
53
52
  if total_percent < min_percent
54
53
  # Just return name
@@ -200,7 +199,7 @@ module RubyProf
200
199
  <td><%= sprintf("%#{TIME_WIDTH}.2f", caller.children_time) %></td>
201
200
  <% called = "#{caller.called}/#{method.called}" %>
202
201
  <td><%= sprintf("%#{CALL_WIDTH}s", called) %></td>
203
- <td class="method_name"><%= create_link(thread, caller.parent.target) %></td>
202
+ <td class="method_name"><%= create_link(thread, total_time, caller.parent.target) %></td>
204
203
  <td><%= file_link(caller.parent.target.source_file, caller.line) %></td>
205
204
  </tr>
206
205
  <% end %>
@@ -233,7 +232,7 @@ module RubyProf
233
232
  <td><%= sprintf("%#{TIME_WIDTH}.2f", callee.children_time) %></td>
234
233
  <% called = "#{callee.called}/#{callee.target.called}" %>
235
234
  <td><%= sprintf("%#{CALL_WIDTH}s", called) %></td>
236
- <td class="method_name"><%= create_link(thread, callee.target) %></td>
235
+ <td class="method_name"><%= create_link(thread, total_time, callee.target) %></td>
237
236
  <td><%= file_link(method.source_file, callee.line) %></td>
238
237
  </tr>
239
238
  <% end %>
@@ -11,7 +11,7 @@ RUBY_PROF_VERSION = "#{match[1]}"
11
11
  Gem::Specification.new do |spec|
12
12
  spec.name = "ruby-prof"
13
13
 
14
- spec.homepage = "http://rubyforge.org/projects/ruby-prof/"
14
+ spec.homepage = "https://github.com/ruby-prof/ruby-prof/"
15
15
  spec.summary = "Fast Ruby profiler"
16
16
  spec.description = <<-EOF
17
17
  ruby-prof is a fast code profiler for Ruby. It is a C extension and
@@ -55,7 +55,7 @@ EOF
55
55
  spec.required_ruby_version = '>= 1.8.7'
56
56
  spec.date = Time.now.strftime('%Y-%m-%d')
57
57
  spec.homepage = 'https://github.com/rdp/ruby-prof'
58
- spec.add_development_dependency('minitest')
58
+ spec.add_development_dependency('minitest', '~> 4.0')
59
59
  spec.add_development_dependency('rake-compiler')
60
60
  spec.add_development_dependency('rdoc')
61
61
  end
@@ -57,8 +57,9 @@ class MultiPrinterTest < Test::Unit::TestCase
57
57
  \s*
58
58
  \s*</table>')
59
59
  assert_match(re, graph)
60
+ graph =~ re
60
61
  display_time = $4.to_f
61
- assert_in_delta expected_time, display_time, 0.5
62
+ assert_in_delta expected_time, display_time, 0.001
62
63
  end
63
64
 
64
65
  private
@@ -43,9 +43,11 @@ class StackPrinterTest < Test::Unit::TestCase
43
43
  file_contents = nil
44
44
  assert_nothing_raised { file_contents = print(result) }
45
45
  # TODO: why are thread ids negative on travis-ci.org (32 bit build maybe?)
46
- assert_match(/Thread: (-?\d+)(, Fiber: (-?\d+))? \(100\.00% ~ ([\.0-9]+)\)/, file_contents)
46
+ re = /Thread: (-?\d+)(, Fiber: (-?\d+))? \(100\.00% ~ ([\.0-9]+)\)/
47
+ assert_match(re, file_contents)
48
+ file_contents =~ re
47
49
  actual_time = $4.to_f
48
- assert_in_delta(expected_time, actual_time, 0.5)
50
+ assert_in_delta(expected_time, actual_time, 0.1)
49
51
  end
50
52
 
51
53
  def test_method_elimination
metadata CHANGED
@@ -1,77 +1,64 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-prof
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.13.0
4
+ version: 0.13.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-10 00:00:00.000000000 Z
11
+ date: 2013-12-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: minitest
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
- - - ! '>='
17
+ - - ~>
19
18
  - !ruby/object:Gem::Version
20
- version: '0'
21
- none: false
19
+ version: '4.0'
22
20
  type: :development
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - ! '>='
24
+ - - ~>
26
25
  - !ruby/object:Gem::Version
27
- version: '0'
28
- none: false
29
- prerelease: false
26
+ version: '4.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake-compiler
32
29
  requirement: !ruby/object:Gem::Requirement
33
30
  requirements:
34
- - - ! '>='
31
+ - - '>='
35
32
  - !ruby/object:Gem::Version
36
33
  version: '0'
37
- none: false
38
34
  type: :development
35
+ prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ! '>='
38
+ - - '>='
42
39
  - !ruby/object:Gem::Version
43
40
  version: '0'
44
- none: false
45
- prerelease: false
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rdoc
48
43
  requirement: !ruby/object:Gem::Requirement
49
44
  requirements:
50
- - - ! '>='
45
+ - - '>='
51
46
  - !ruby/object:Gem::Version
52
47
  version: '0'
53
- none: false
54
48
  type: :development
49
+ prerelease: false
55
50
  version_requirements: !ruby/object:Gem::Requirement
56
51
  requirements:
57
- - - ! '>='
52
+ - - '>='
58
53
  - !ruby/object:Gem::Version
59
54
  version: '0'
60
- none: false
61
- prerelease: false
62
- description: ! 'ruby-prof is a fast code profiler for Ruby. It is a C extension and
63
-
55
+ description: |
56
+ ruby-prof is a fast code profiler for Ruby. It is a C extension and
64
57
  therefore is many times faster than the standard Ruby profiler. It
65
-
66
58
  supports both flat and graph profiles. For each method, graph profiles
67
-
68
59
  show how long the method ran, which methods called it and which
69
-
70
60
  methods it called. RubyProf generate both text and html and can output
71
-
72
61
  it to standard out or to a file.
73
-
74
- '
75
62
  email: shugo@ruby-lang.org, cfis@savagexi.com, rogerdpack@gmail.com, skaes@railsexpress.de
76
63
  executables:
77
64
  - ruby-prof
@@ -245,30 +232,26 @@ files:
245
232
  - test/unique_call_path_test.rb
246
233
  homepage: https://github.com/rdp/ruby-prof
247
234
  licenses: []
235
+ metadata: {}
248
236
  post_install_message:
249
237
  rdoc_options: []
250
238
  require_paths:
251
239
  - lib
252
240
  required_ruby_version: !ruby/object:Gem::Requirement
253
241
  requirements:
254
- - - ! '>='
242
+ - - '>='
255
243
  - !ruby/object:Gem::Version
256
244
  version: 1.8.7
257
- none: false
258
245
  required_rubygems_version: !ruby/object:Gem::Requirement
259
246
  requirements:
260
- - - ! '>='
247
+ - - '>='
261
248
  - !ruby/object:Gem::Version
262
- segments:
263
- - 0
264
- hash: -3655921953818653003
265
249
  version: '0'
266
- none: false
267
250
  requirements: []
268
251
  rubyforge_project:
269
- rubygems_version: 1.8.25
252
+ rubygems_version: 2.1.11
270
253
  signing_key:
271
- specification_version: 3
254
+ specification_version: 4
272
255
  summary: Fast Ruby profiler
273
256
  test_files:
274
257
  - test/test_helper.rb