doc/RubyProf/MethodInfo.html in ruby-prof-0.15.5 vs doc/RubyProf/MethodInfo.html in ruby-prof-0.15.6

- old
+ new

@@ -91,14 +91,26 @@ <li ><a href="#method-i-children">#children</a> <li ><a href="#method-i-children_time">#children_time</a> + <li ><a href="#method-i-clear_cached_values_which_depend_on_recursiveness">#clear_cached_values_which_depend_on_recursiveness</a> + + <li ><a href="#method-i-detect_recursion">#detect_recursion</a> + <li ><a href="#method-i-eliminate-21">#eliminate!</a> <li ><a href="#method-i-min_depth">#min_depth</a> + <li ><a href="#method-i-non_recursive">#non_recursive</a> + + <li ><a href="#method-i-non_recursive-3F">#non_recursive?</a> + + <li ><a href="#method-i-parents">#parents</a> + + <li ><a href="#method-i-recalc_recursion">#recalc_recursion</a> + <li ><a href="#method-i-recursive-3F">#recursive?</a> <li ><a href="#method-i-root-3F">#root?</a> <li ><a href="#method-i-self_time">#self_time</a> @@ -203,17 +215,16 @@ <div class="method-source-code" id="aggregate_children-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 105</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 120</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">aggregate_children</span> <span class="ruby-comment"># Group call info&#39;s based on their targets</span> - <span class="ruby-identifier">groups</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, <span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> + <span class="ruby-identifier">groups</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each_with_object</span>({}) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span>, <span class="ruby-identifier">hash</span><span class="ruby-operator">|</span> <span class="ruby-identifier">key</span> = <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span> (<span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">call_info</span> - <span class="ruby-identifier">hash</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">groups</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-constant">AggregateCallInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>) <span class="ruby-keyword">end</span> @@ -245,17 +256,16 @@ <div class="method-source-code" id="aggregate_parents-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 92</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 108</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">aggregate_parents</span> <span class="ruby-comment"># Group call info&#39;s based on their parents</span> - <span class="ruby-identifier">groups</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, <span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> + <span class="ruby-identifier">groups</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">each_with_object</span>({}) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span>, <span class="ruby-identifier">hash</span><span class="ruby-operator">|</span> <span class="ruby-identifier">key</span> = <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">parent</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">target</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">self</span> (<span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">call_info</span> - <span class="ruby-identifier">hash</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">groups</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-constant">AggregateCallInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>) <span class="ruby-keyword">end</span> @@ -287,11 +297,11 @@ <div class="method-source-code" id="called-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 20</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 32</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">called</span> <span class="ruby-ivar">@called</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">call_infos</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> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">called</span> <span class="ruby-keyword">end</span> @@ -324,17 +334,13 @@ <div class="method-source-code" id="children-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 84</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 100</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">children</span> - <span class="ruby-ivar">@children</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> - <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">children</span> - <span class="ruby-keyword">end</span>.<span class="ruby-identifier">flatten</span> - <span class="ruby-keyword">end</span> + <span class="ruby-ivar">@children</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:children</span>).<span class="ruby-identifier">flatten</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -361,15 +367,15 @@ <div class="method-source-code" id="children_time-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 55</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 67</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">children_time</span> <span class="ruby-ivar">@children_time</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">call_infos</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> - <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">children_time</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> + <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">children_time</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> <span class="ruby-identifier">sum</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> @@ -380,10 +386,76 @@ </div> + <div id="method-i-clear_cached_values_which_depend_on_recursiveness" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">clear_cached_values_which_depend_on_recursiveness</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="clear_cached_values_which_depend_on_recursiveness-source"> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 28</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">clear_cached_values_which_depend_on_recursiveness</span> + <span class="ruby-ivar">@total_time</span> = <span class="ruby-ivar">@self_time</span> = <span class="ruby-ivar">@wait_time</span> = <span class="ruby-ivar">@children_time</span> = <span class="ruby-keyword">nil</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-detect_recursion" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">detect_recursion</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="detect_recursion-source"> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 20</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">detect_recursion</span> + <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:detect_recursion</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + <div id="method-i-eliminate-21" class="method-detail "> <div class="method-heading"> <span class="method-name">eliminate!</span><span class="method-args">()</span> @@ -399,11 +471,11 @@ <div class="method-source-code" id="eliminate-21-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 123</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 137</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">eliminate!</span> <span class="ruby-comment"># $stderr.puts &quot;eliminating #{self}&quot;</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">eliminate!</span> } <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">clear</span> <span class="ruby-keyword">end</span></pre> @@ -434,15 +506,13 @@ <div class="method-source-code" id="min_depth-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 64</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 76</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">min_depth</span> - <span class="ruby-ivar">@min_depth</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">depth</span> - <span class="ruby-keyword">end</span>.<span class="ruby-identifier">min</span> + <span class="ruby-ivar">@min_depth</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:depth</span>).<span class="ruby-identifier">min</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -450,10 +520,142 @@ </div> + <div id="method-i-non_recursive" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">non_recursive</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="non_recursive-source"> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 96</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">non_recursive</span> + <span class="ruby-ivar">@non_recursive</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">all?</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:non_recursive?</span>) <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-non_recursive-3F" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">non_recursive?</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="non_recursive-3F-source"> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 92</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">non_recursive?</span> + <span class="ruby-identifier">non_recursive</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-parents" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">parents</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="parents-source"> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 104</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">parents</span> + <span class="ruby-ivar">@parents</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:parent</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-recalc_recursion" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">recalc_recursion</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="recalc_recursion-source"> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 24</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">recalc_recursion</span> + <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:recalc_recursion</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + <div id="method-i-recursive-3F" class="method-detail "> <div class="method-heading"> <span class="method-name">recursive?</span><span class="method-args">()</span> @@ -469,15 +671,13 @@ <div class="method-source-code" id="recursive-3F-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 78</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 88</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">recursive?</span> - <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">detect</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> - <span class="ruby-keyword">end</span> + <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">detect</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:recursive</span>) <span class="ruby-keyword">end</span></pre> </div> </div> @@ -504,11 +704,11 @@ <div class="method-source-code" id="root-3F-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 70</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 80</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">root?</span> <span class="ruby-ivar">@root</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span><span class="ruby-operator">|</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">root?</span> <span class="ruby-keyword">end</span>.<span class="ruby-identifier">nil?</span> @@ -541,15 +741,15 @@ <div class="method-source-code" id="self_time-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 37</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 49</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">self_time</span> <span class="ruby-ivar">@self_time</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">call_infos</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> - <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">self_time</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> + <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">self_time</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> <span class="ruby-identifier">sum</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> @@ -579,11 +779,11 @@ <div class="method-source-code" id="to_s-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 118</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 132</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span> <span class="ruby-node">&quot;#{self.full_name} (c: #{self.called}, tt: #{self.total_time}, st: #{self.self_time}, ct: #{self.children_time})&quot;</span> <span class="ruby-keyword">end</span></pre> </div> @@ -612,11 +812,11 @@ <div class="method-source-code" id="total_time-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 28</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 40</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">total_time</span> <span class="ruby-ivar">@total_time</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">call_infos</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> <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> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> <span class="ruby-identifier">sum</span> @@ -650,10 +850,10 @@ <div class="method-source-code" id="wait_time-source"> - <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 46</span> + <pre><span class="ruby-comment"># File lib/ruby-prof/method_info.rb, line 58</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">wait_time</span> <span class="ruby-ivar">@wait_time</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">call_infos</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> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">wait_time</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> <span class="ruby-identifier">sum</span>