ruby-prof 0.15.5 → 0.15.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6bca6fbb93e0558298aa5d30d8a8771d116ddbf5
4
- data.tar.gz: 8b908920d2cc8192011c43eea35f84bc2042a0a3
3
+ metadata.gz: 2611a288f51e3e7d0a29f25930cefe6420b4a01e
4
+ data.tar.gz: a8cdc8375d6bfd6ba5455f87f8be3c8b438a387b
5
5
  SHA512:
6
- metadata.gz: 1a358dd828584635f1d2141696971ca50db1829171f8808a8c00a1783b2a43ff91b1148269f0146b7d10cbf972401013085db4c3ff91b8b845947784558bdc1e
7
- data.tar.gz: 7e4564d1c5d452561f1067faac32cab8dd896ee8d5627b6534c3894fb122860779e73d40fe95822ec2d63cd4ff60908233510ff867e430d772b824495fce87df
6
+ metadata.gz: f8a15d1854ee6028cd5f549a6376a1c48468e05d4f6dac0f5cd13209d88fd7fc0eab30fde4798a9e1f982c5e1bc0fd73145937e93265d4c0839731e8c53b46d2
7
+ data.tar.gz: bd0385167c33165e05a09d0a5f71b02fc4ecdf64290fbfded52c4df7de0ce71d786af7da4211bf38814ea3d801981f608be3a1b64fa49a702d83bedacbeb35ed
data/CHANGES CHANGED
@@ -1,6 +1,9 @@
1
- 0.15.5 (2015-02-22)
1
+ 0.15.6 (2015-02-22)
2
2
  ======================
3
3
  * improved upon computing children time in graph printers
4
+
5
+ 0.15.5 (2015-02-22)
6
+ ======================
4
7
  * changed output format of flat_printer_with_line_number
5
8
  * support using multi printer from command line (Dov Murik)
6
9
 
@@ -118,13 +118,12 @@
118
118
 
119
119
  <section class="description">
120
120
 
121
- <p>The call info visitor class does a depth-first traversal across a
122
- thread&#39;s call stack. At each call_info node, the visitor executes the
123
- block provided in the visit method. The block is passed two parameters,
124
- the event and the call_info instance. Event will be either :enter or
125
- :exit.</p>
121
+ <p>The call info visitor class does a depth-first traversal across a list of
122
+ method infos. At each call_info node, the visitor executes the block
123
+ provided in the visit method. The block is passed two parameters, the event
124
+ and the call_info instance. Event will be either :enter or :exit.</p>
126
125
 
127
- <pre class="ruby"><span class="ruby-identifier">visitor</span> = <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">CallInfoVisitor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">result</span>.<span class="ruby-identifier">threads</span>.<span class="ruby-identifier">first</span>)
126
+ <pre class="ruby"><span class="ruby-identifier">visitor</span> = <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">CallInfoVisitor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">result</span>.<span class="ruby-identifier">threads</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">top_call_infos</span>)
128
127
 
129
128
  <span class="ruby-identifier">method_names</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
130
129
 
@@ -70,16 +70,28 @@
70
70
 
71
71
  <ul class="link-list" role="directory">
72
72
 
73
+ <li ><a href="#method-c-roots_of">::roots_of</a>
74
+
73
75
  <li ><a href="#method-i-call_sequence">#call_sequence</a>
74
76
 
75
77
  <li ><a href="#method-i-children_time">#children_time</a>
76
78
 
79
+ <li ><a href="#method-i-descendent_of">#descendent_of</a>
80
+
81
+ <li ><a href="#method-i-detect_recursion">#detect_recursion</a>
82
+
77
83
  <li ><a href="#method-i-eliminate-21">#eliminate!</a>
78
84
 
79
85
  <li ><a href="#method-i-find_call">#find_call</a>
80
86
 
87
+ <li class="calls-super" ><a href="#method-i-inspect">#inspect</a>
88
+
81
89
  <li ><a href="#method-i-merge_call_tree">#merge_call_tree</a>
82
90
 
91
+ <li ><a href="#method-i-non_recursive-3F">#non_recursive?</a>
92
+
93
+ <li ><a href="#method-i-recalc_recursion">#recalc_recursion</a>
94
+
83
95
  <li ><a href="#method-i-root-3F">#root?</a>
84
96
 
85
97
  <li ><a href="#method-i-stack">#stack</a>
@@ -121,12 +133,16 @@
121
133
  <div id="attribute-i-recursive" class="method-detail">
122
134
  <div class="method-heading attribute-method-heading">
123
135
  <span class="method-name">recursive</span><span
124
- class="attribute-access-type">[RW]</span>
136
+ class="attribute-access-type">[R]</span>
125
137
  </div>
126
138
 
127
139
  <div class="method-description">
128
140
 
129
-
141
+ <p>part of this class is defined in C code. it provides the following
142
+ attributes pertaining to tree structure: depth: tree level (0 == root)
143
+ parent: parent call info (can be nil) children: array of call info
144
+ children (can be empty) target: method info (containing an array of
145
+ call infos)</p>
130
146
 
131
147
  </div>
132
148
  </div>
@@ -135,6 +151,52 @@
135
151
 
136
152
 
137
153
 
154
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
155
+ <header>
156
+ <h3>Public Class Methods</h3>
157
+ </header>
158
+
159
+
160
+ <div id="method-c-roots_of" class="method-detail ">
161
+
162
+ <div class="method-heading">
163
+ <span class="method-name">roots_of</span><span
164
+ class="method-args">(call_infos)</span>
165
+
166
+ <span class="method-click-advice">click to toggle source</span>
167
+
168
+ </div>
169
+
170
+
171
+ <div class="method-description">
172
+
173
+
174
+
175
+
176
+
177
+
178
+ <div class="method-source-code" id="roots_of-source">
179
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 74</span>
180
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">roots_of</span>(<span class="ruby-identifier">call_infos</span>)
181
+ <span class="ruby-identifier">roots</span> = []
182
+ <span class="ruby-identifier">sorted</span> = <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">sort_by</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:depth</span>).<span class="ruby-identifier">reverse</span>
183
+ <span class="ruby-keyword">while</span> <span class="ruby-identifier">call_info</span> = <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">shift</span>
184
+ <span class="ruby-identifier">roots</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">call_info</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">any?</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">descendent_of</span>(<span class="ruby-identifier">p</span>)}
185
+ <span class="ruby-keyword">end</span>
186
+ <span class="ruby-identifier">roots</span>
187
+ <span class="ruby-keyword">end</span></pre>
188
+ </div>
189
+
190
+ </div>
191
+
192
+
193
+
194
+
195
+ </div>
196
+
197
+
198
+ </section>
199
+
138
200
  <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
139
201
  <header>
140
202
  <h3>Public Instance Methods</h3>
@@ -160,7 +222,7 @@
160
222
 
161
223
 
162
224
  <div class="method-source-code" id="call_sequence-source">
163
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 25</span>
225
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 56</span>
164
226
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">call_sequence</span>
165
227
  <span class="ruby-ivar">@call_sequence</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
166
228
  <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">method</span><span class="ruby-operator">|</span> <span class="ruby-identifier">method</span>.<span class="ruby-identifier">full_name</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;-&gt;&#39;</span>)
@@ -195,7 +257,7 @@
195
257
 
196
258
 
197
259
  <div class="method-source-code" id="children_time-source">
198
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 6</span>
260
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 37</span>
199
261
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">children_time</span>
200
262
  <span class="ruby-identifier">children</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span>
201
263
  <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">total_time</span>
@@ -208,6 +270,82 @@
208
270
 
209
271
 
210
272
 
273
+ </div>
274
+
275
+
276
+ <div id="method-i-descendent_of" class="method-detail ">
277
+
278
+ <div class="method-heading">
279
+ <span class="method-name">descendent_of</span><span
280
+ class="method-args">(other)</span>
281
+
282
+ <span class="method-click-advice">click to toggle source</span>
283
+
284
+ </div>
285
+
286
+
287
+ <div class="method-description">
288
+
289
+
290
+
291
+
292
+
293
+
294
+ <div class="method-source-code" id="descendent_of-source">
295
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 66</span>
296
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">descendent_of</span>(<span class="ruby-identifier">other</span>)
297
+ <span class="ruby-identifier">p</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parent</span>
298
+ <span class="ruby-keyword">while</span> <span class="ruby-identifier">p</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">p</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">depth</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">depth</span>
299
+ <span class="ruby-identifier">p</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
300
+ <span class="ruby-keyword">end</span>
301
+ <span class="ruby-identifier">p</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>
302
+ <span class="ruby-keyword">end</span></pre>
303
+ </div>
304
+
305
+ </div>
306
+
307
+
308
+
309
+
310
+ </div>
311
+
312
+
313
+ <div id="method-i-detect_recursion" class="method-detail ">
314
+
315
+ <div class="method-heading">
316
+ <span class="method-name">detect_recursion</span><span
317
+ class="method-args">(visited_methods = Hash.new(0))</span>
318
+
319
+ <span class="method-click-advice">click to toggle source</span>
320
+
321
+ </div>
322
+
323
+
324
+ <div class="method-description">
325
+
326
+
327
+
328
+
329
+
330
+
331
+ <div class="method-source-code" id="detect_recursion-source">
332
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 17</span>
333
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">detect_recursion</span>(<span class="ruby-identifier">visited_methods</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>))
334
+ <span class="ruby-ivar">@recursive</span> = (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">target</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
335
+ <span class="ruby-ivar">@non_recursive</span> = <span class="ruby-keyword">true</span>
336
+ <span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
337
+ <span class="ruby-ivar">@non_recursive</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">detect_recursion</span>(<span class="ruby-identifier">visited_methods</span>)
338
+ <span class="ruby-keyword">end</span>
339
+ <span class="ruby-identifier">visited_methods</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">target</span>) <span class="ruby-keyword">if</span> (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">target</span>] <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
340
+ <span class="ruby-keyword">return</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@non_recursive</span>
341
+ <span class="ruby-keyword">end</span></pre>
342
+ </div>
343
+
344
+ </div>
345
+
346
+
347
+
348
+
211
349
  </div>
212
350
 
213
351
 
@@ -232,7 +370,7 @@ from both praent end self.</p>
232
370
 
233
371
 
234
372
  <div class="method-source-code" id="eliminate-21-source">
235
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 42</span>
373
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 94</span>
236
374
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">eliminate!</span>
237
375
  <span class="ruby-comment"># puts &quot;eliminating #{self}&quot;</span>
238
376
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">parent</span>
@@ -281,7 +419,7 @@ and call infos x</p>
281
419
 
282
420
 
283
421
  <div class="method-source-code" id="find_call-source">
284
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 62</span>
422
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 114</span>
285
423
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_call</span>(<span class="ruby-identifier">other</span>)
286
424
  <span class="ruby-identifier">matching</span> = <span class="ruby-identifier">children</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">kid</span><span class="ruby-operator">|</span> <span class="ruby-identifier">kid</span>.<span class="ruby-identifier">target</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">target</span> }
287
425
  <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;inconsistent call tree&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">matching</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">1</span>
@@ -294,6 +432,44 @@ and call infos x</p>
294
432
 
295
433
 
296
434
 
435
+ </div>
436
+
437
+
438
+ <div id="method-i-inspect" class="method-detail ">
439
+
440
+ <div class="method-heading">
441
+ <span class="method-name">inspect</span><span
442
+ class="method-args">()</span>
443
+
444
+ <span class="method-click-advice">click to toggle source</span>
445
+
446
+ </div>
447
+
448
+
449
+ <div class="method-description">
450
+
451
+
452
+
453
+
454
+ <div class="method-calls-super">
455
+ Calls superclass method
456
+
457
+ </div>
458
+
459
+
460
+
461
+ <div class="method-source-code" id="inspect-source">
462
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 87</span>
463
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">inspect</span>
464
+ <span class="ruby-keyword">super</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;(#{target.full_name}, d: #{depth}, c: #{called}, tt: #{total_time}, st: #{self_time}, ct: #{children_time})&quot;</span>
465
+ <span class="ruby-keyword">end</span></pre>
466
+ </div>
467
+
468
+ </div>
469
+
470
+
471
+
472
+
297
473
  </div>
298
474
 
299
475
 
@@ -317,7 +493,7 @@ merges children of other into children of self.</p>
317
493
 
318
494
 
319
495
  <div class="method-source-code" id="merge_call_tree-source">
320
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 69</span>
496
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 121</span>
321
497
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">merge_call_tree</span>(<span class="ruby-identifier">other</span>)
322
498
  <span class="ruby-comment"># $stderr.puts &quot;merging #{self}\nand #{other}&quot;</span>
323
499
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">called</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">called</span>
@@ -343,6 +519,78 @@ merges children of other into children of self.</p>
343
519
 
344
520
 
345
521
 
522
+ </div>
523
+
524
+
525
+ <div id="method-i-non_recursive-3F" class="method-detail ">
526
+
527
+ <div class="method-heading">
528
+ <span class="method-name">non_recursive?</span><span
529
+ class="method-args">()</span>
530
+
531
+ <span class="method-click-advice">click to toggle source</span>
532
+
533
+ </div>
534
+
535
+
536
+ <div class="method-description">
537
+
538
+
539
+
540
+
541
+
542
+
543
+ <div class="method-source-code" id="non_recursive-3F-source">
544
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 13</span>
545
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">non_recursive?</span>
546
+ <span class="ruby-ivar">@non_recursive</span>
547
+ <span class="ruby-keyword">end</span></pre>
548
+ </div>
549
+
550
+ </div>
551
+
552
+
553
+
554
+
555
+ </div>
556
+
557
+
558
+ <div id="method-i-recalc_recursion" class="method-detail ">
559
+
560
+ <div class="method-heading">
561
+ <span class="method-name">recalc_recursion</span><span
562
+ class="method-args">(visited_methods = Hash.new(0))</span>
563
+
564
+ <span class="method-click-advice">click to toggle source</span>
565
+
566
+ </div>
567
+
568
+
569
+ <div class="method-description">
570
+
571
+
572
+
573
+
574
+
575
+
576
+ <div class="method-source-code" id="recalc_recursion-source">
577
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 27</span>
578
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">recalc_recursion</span>(<span class="ruby-identifier">visited_methods</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>))
579
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@non_recursive</span>
580
+ <span class="ruby-identifier">target</span>.<span class="ruby-identifier">clear_cached_values_which_depend_on_recursiveness</span>
581
+ <span class="ruby-ivar">@recursive</span> = (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">target</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
582
+ <span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
583
+ <span class="ruby-identifier">child</span>.<span class="ruby-identifier">recalc_recursion</span>(<span class="ruby-identifier">visited_methods</span>)
584
+ <span class="ruby-keyword">end</span>
585
+ <span class="ruby-identifier">visited_methods</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">target</span>) <span class="ruby-keyword">if</span> (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">target</span>] <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
586
+ <span class="ruby-keyword">end</span></pre>
587
+ </div>
588
+
589
+ </div>
590
+
591
+
592
+
593
+
346
594
  </div>
347
595
 
348
596
 
@@ -365,7 +613,7 @@ merges children of other into children of self.</p>
365
613
 
366
614
 
367
615
  <div class="method-source-code" id="root-3F-source">
368
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 31</span>
616
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 62</span>
369
617
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">root?</span>
370
618
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
371
619
  <span class="ruby-keyword">end</span></pre>
@@ -398,7 +646,7 @@ merges children of other into children of self.</p>
398
646
 
399
647
 
400
648
  <div class="method-source-code" id="stack-source">
401
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 12</span>
649
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 43</span>
402
650
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">stack</span>
403
651
  <span class="ruby-ivar">@stack</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
404
652
  <span class="ruby-identifier">methods</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
@@ -440,9 +688,9 @@ merges children of other into children of self.</p>
440
688
 
441
689
 
442
690
  <div class="method-source-code" id="to_s-source">
443
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 35</span>
691
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info.rb, line 83</span>
444
692
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
445
- <span class="ruby-node">&quot;#{self.target.full_name} (c: #{self.called}, tt: #{self.total_time}, st: #{self.self_time}, ct: #{self.children_time})&quot;</span>
693
+ <span class="ruby-node">&quot;#{target.full_name} (c: #{called}, tt: #{total_time}, st: #{self_time}, ct: #{children_time})&quot;</span>
446
694
  <span class="ruby-keyword">end</span></pre>
447
695
  </div>
448
696
 
@@ -76,8 +76,8 @@
76
76
  <section class="description">
77
77
 
78
78
  <p>Prints out the call graph based on <a href="CallInfo.html">CallInfo</a>
79
- instances. This is mainly for debugging purposes as it provides access
80
- into into RubyProf&#39;s internals.</p>
79
+ instances. This is mainly for debugging purposes as it provides access into
80
+ into RubyProf&#39;s internals.</p>
81
81
 
82
82
  </section>
83
83
 
@@ -112,7 +112,7 @@
112
112
 
113
113
  <div class="method-heading">
114
114
  <span class="method-name">new</span><span
115
- class="method-args">(thread)</span>
115
+ class="method-args">(call_infos)</span>
116
116
 
117
117
  <span class="method-click-advice">click to toggle source</span>
118
118
 
@@ -127,9 +127,9 @@
127
127
 
128
128
 
129
129
  <div class="method-source-code" id="new-source">
130
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info_visitor.rb, line 21</span>
131
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">thread</span>)
132
- <span class="ruby-ivar">@thread</span> = <span class="ruby-identifier">thread</span>
130
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info_visitor.rb, line 20</span>
131
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">call_infos</span>)
132
+ <span class="ruby-ivar">@call_infos</span> = <span class="ruby-constant">CallInfo</span>.<span class="ruby-identifier">roots_of</span>(<span class="ruby-identifier">call_infos</span>)
133
133
  <span class="ruby-keyword">end</span></pre>
134
134
  </div>
135
135
 
@@ -168,12 +168,10 @@
168
168
 
169
169
 
170
170
  <div class="method-source-code" id="visit-source">
171
- <pre><span class="ruby-comment"># File lib/ruby-prof/call_info_visitor.rb, line 25</span>
171
+ <pre><span class="ruby-comment"># File lib/ruby-prof/call_info_visitor.rb, line 24</span>
172
172
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">visit</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
173
- <span class="ruby-ivar">@thread</span>.<span class="ruby-identifier">top_methods</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">method_info</span><span class="ruby-operator">|</span>
174
- <span class="ruby-identifier">method_info</span>.<span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span>
175
- <span class="ruby-identifier">visit_call_info</span>(<span class="ruby-identifier">call_info</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
176
- <span class="ruby-keyword">end</span>
173
+ <span class="ruby-ivar">@call_infos</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span>
174
+ <span class="ruby-identifier">visit_call_info</span>(<span class="ruby-identifier">call_info</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
177
175
  <span class="ruby-keyword">end</span>
178
176
  <span class="ruby-keyword">end</span></pre>
179
177
  </div>