ruby-prof 0.17.0 → 0.18.0

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.
Files changed (185) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +500 -482
  3. data/LICENSE +24 -24
  4. data/README.rdoc +487 -485
  5. data/Rakefile +113 -113
  6. data/bin/ruby-prof +345 -345
  7. data/bin/ruby-prof-check-trace +45 -45
  8. data/examples/flat.txt +50 -50
  9. data/examples/graph.dot +84 -84
  10. data/examples/graph.html +823 -823
  11. data/examples/graph.txt +139 -139
  12. data/examples/multi.flat.txt +23 -23
  13. data/examples/multi.graph.html +760 -760
  14. data/examples/multi.grind.dat +114 -114
  15. data/examples/multi.stack.html +547 -547
  16. data/examples/stack.html +547 -547
  17. data/ext/ruby_prof/extconf.rb +68 -68
  18. data/ext/ruby_prof/rp_call_info.c +425 -425
  19. data/ext/ruby_prof/rp_call_info.h +53 -53
  20. data/ext/ruby_prof/rp_measure.c +40 -40
  21. data/ext/ruby_prof/rp_measure.h +45 -45
  22. data/ext/ruby_prof/rp_measure_allocations.c +76 -76
  23. data/ext/ruby_prof/rp_measure_cpu_time.c +136 -136
  24. data/ext/ruby_prof/rp_measure_gc_runs.c +73 -73
  25. data/ext/ruby_prof/rp_measure_gc_time.c +60 -60
  26. data/ext/ruby_prof/rp_measure_memory.c +77 -77
  27. data/ext/ruby_prof/rp_measure_process_time.c +71 -71
  28. data/ext/ruby_prof/rp_measure_wall_time.c +45 -45
  29. data/ext/ruby_prof/rp_method.c +630 -636
  30. data/ext/ruby_prof/rp_method.h +75 -75
  31. data/ext/ruby_prof/rp_stack.c +173 -173
  32. data/ext/ruby_prof/rp_stack.h +63 -63
  33. data/ext/ruby_prof/rp_thread.c +277 -276
  34. data/ext/ruby_prof/rp_thread.h +27 -27
  35. data/ext/ruby_prof/ruby_prof.c +794 -774
  36. data/ext/ruby_prof/ruby_prof.h +60 -59
  37. data/ext/ruby_prof/vc/ruby_prof.sln +20 -21
  38. data/ext/ruby_prof/vc/{ruby_prof_20.vcxproj → ruby_prof.vcxproj} +31 -0
  39. data/lib/ruby-prof.rb +68 -68
  40. data/lib/ruby-prof/aggregate_call_info.rb +76 -76
  41. data/lib/ruby-prof/assets/call_stack_printer.css.html +116 -116
  42. data/lib/ruby-prof/assets/call_stack_printer.js.html +384 -384
  43. data/lib/ruby-prof/call_info.rb +115 -115
  44. data/lib/ruby-prof/call_info_visitor.rb +40 -40
  45. data/lib/ruby-prof/compatibility.rb +179 -178
  46. data/lib/ruby-prof/method_info.rb +121 -121
  47. data/lib/ruby-prof/printers/abstract_printer.rb +104 -103
  48. data/lib/ruby-prof/printers/call_info_printer.rb +41 -41
  49. data/lib/ruby-prof/printers/call_stack_printer.rb +265 -265
  50. data/lib/ruby-prof/printers/call_tree_printer.rb +143 -143
  51. data/lib/ruby-prof/printers/dot_printer.rb +132 -132
  52. data/lib/ruby-prof/printers/flat_printer.rb +70 -70
  53. data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +83 -83
  54. data/lib/ruby-prof/printers/graph_html_printer.rb +249 -249
  55. data/lib/ruby-prof/printers/graph_printer.rb +116 -116
  56. data/lib/ruby-prof/printers/multi_printer.rb +84 -84
  57. data/lib/ruby-prof/profile.rb +26 -26
  58. data/lib/ruby-prof/profile/exclude_common_methods.rb +207 -201
  59. data/lib/ruby-prof/profile/legacy_method_elimination.rb +50 -49
  60. data/lib/ruby-prof/rack.rb +174 -174
  61. data/lib/ruby-prof/task.rb +147 -147
  62. data/lib/ruby-prof/thread.rb +35 -35
  63. data/lib/ruby-prof/version.rb +3 -3
  64. data/lib/unprof.rb +10 -10
  65. data/ruby-prof.gemspec +58 -58
  66. data/test/abstract_printer_test.rb +53 -0
  67. data/test/aggregate_test.rb +136 -136
  68. data/test/basic_test.rb +128 -128
  69. data/test/block_test.rb +74 -74
  70. data/test/call_info_test.rb +78 -78
  71. data/test/call_info_visitor_test.rb +31 -31
  72. data/test/duplicate_names_test.rb +32 -32
  73. data/test/dynamic_method_test.rb +55 -55
  74. data/test/enumerable_test.rb +21 -21
  75. data/test/exceptions_test.rb +24 -16
  76. data/test/exclude_methods_test.rb +146 -146
  77. data/test/exclude_threads_test.rb +53 -53
  78. data/test/fiber_test.rb +79 -79
  79. data/test/issue137_test.rb +63 -63
  80. data/test/line_number_test.rb +80 -80
  81. data/test/measure_allocations_test.rb +26 -26
  82. data/test/measure_cpu_time_test.rb +212 -213
  83. data/test/measure_gc_runs_test.rb +32 -32
  84. data/test/measure_gc_time_test.rb +36 -36
  85. data/test/measure_memory_test.rb +33 -33
  86. data/test/measure_process_time_test.rb +61 -63
  87. data/test/measure_wall_time_test.rb +255 -255
  88. data/test/method_elimination_test.rb +84 -84
  89. data/test/module_test.rb +45 -45
  90. data/test/multi_printer_test.rb +104 -104
  91. data/test/no_method_class_test.rb +15 -15
  92. data/test/pause_resume_test.rb +166 -166
  93. data/test/prime.rb +54 -54
  94. data/test/printers_test.rb +275 -275
  95. data/test/printing_recursive_graph_test.rb +127 -127
  96. data/test/rack_test.rb +157 -157
  97. data/test/recursive_test.rb +215 -215
  98. data/test/singleton_test.rb +38 -38
  99. data/test/stack_printer_test.rb +77 -78
  100. data/test/stack_test.rb +138 -138
  101. data/test/start_stop_test.rb +112 -112
  102. data/test/test_helper.rb +267 -275
  103. data/test/thread_test.rb +187 -187
  104. data/test/unique_call_path_test.rb +202 -202
  105. data/test/yarv_test.rb +55 -55
  106. metadata +17 -96
  107. data/doc/LICENSE.html +0 -115
  108. data/doc/README_rdoc.html +0 -637
  109. data/doc/Rack.html +0 -96
  110. data/doc/Rack/RubyProf.html +0 -233
  111. data/doc/Rack/RubyProf/RackProfiler.html +0 -343
  112. data/doc/RubyProf.html +0 -974
  113. data/doc/RubyProf/AbstractPrinter.html +0 -625
  114. data/doc/RubyProf/AggregateCallInfo.html +0 -552
  115. data/doc/RubyProf/CallInfo.html +0 -579
  116. data/doc/RubyProf/CallInfoPrinter.html +0 -121
  117. data/doc/RubyProf/CallInfoVisitor.html +0 -199
  118. data/doc/RubyProf/CallStackPrinter.html +0 -1127
  119. data/doc/RubyProf/CallTreePrinter.html +0 -725
  120. data/doc/RubyProf/Cmd.html +0 -637
  121. data/doc/RubyProf/DeprecationWarnings.html +0 -148
  122. data/doc/RubyProf/DotPrinter.html +0 -258
  123. data/doc/RubyProf/FlatPrinter.html +0 -164
  124. data/doc/RubyProf/FlatPrinterWithLineNumbers.html +0 -210
  125. data/doc/RubyProf/GraphHtmlPrinter.html +0 -558
  126. data/doc/RubyProf/GraphPrinter.html +0 -140
  127. data/doc/RubyProf/MethodInfo.html +0 -676
  128. data/doc/RubyProf/MultiPrinter.html +0 -574
  129. data/doc/RubyProf/Profile.html +0 -908
  130. data/doc/RubyProf/Profile/ExcludeCommonMethods.html +0 -411
  131. data/doc/RubyProf/Profile/LegacyMethodElimination.html +0 -158
  132. data/doc/RubyProf/ProfileTask.html +0 -491
  133. data/doc/RubyProf/Thread.html +0 -275
  134. data/doc/created.rid +0 -33
  135. data/doc/css/fonts.css +0 -167
  136. data/doc/css/rdoc.css +0 -590
  137. data/doc/examples/flat_txt.html +0 -139
  138. data/doc/examples/graph_html.html +0 -910
  139. data/doc/examples/graph_txt.html +0 -248
  140. data/doc/fonts/Lato-Light.ttf +0 -0
  141. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  142. data/doc/fonts/Lato-Regular.ttf +0 -0
  143. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  144. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  145. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  146. data/doc/images/add.png +0 -0
  147. data/doc/images/arrow_up.png +0 -0
  148. data/doc/images/brick.png +0 -0
  149. data/doc/images/brick_link.png +0 -0
  150. data/doc/images/bug.png +0 -0
  151. data/doc/images/bullet_black.png +0 -0
  152. data/doc/images/bullet_toggle_minus.png +0 -0
  153. data/doc/images/bullet_toggle_plus.png +0 -0
  154. data/doc/images/date.png +0 -0
  155. data/doc/images/delete.png +0 -0
  156. data/doc/images/find.png +0 -0
  157. data/doc/images/loadingAnimation.gif +0 -0
  158. data/doc/images/macFFBgHack.png +0 -0
  159. data/doc/images/package.png +0 -0
  160. data/doc/images/page_green.png +0 -0
  161. data/doc/images/page_white_text.png +0 -0
  162. data/doc/images/page_white_width.png +0 -0
  163. data/doc/images/plugin.png +0 -0
  164. data/doc/images/ruby.png +0 -0
  165. data/doc/images/tag_blue.png +0 -0
  166. data/doc/images/tag_green.png +0 -0
  167. data/doc/images/transparent.png +0 -0
  168. data/doc/images/wrench.png +0 -0
  169. data/doc/images/wrench_orange.png +0 -0
  170. data/doc/images/zoom.png +0 -0
  171. data/doc/index.html +0 -666
  172. data/doc/js/darkfish.js +0 -161
  173. data/doc/js/jquery.js +0 -4
  174. data/doc/js/navigation.js +0 -142
  175. data/doc/js/navigation.js.gz +0 -0
  176. data/doc/js/search.js +0 -109
  177. data/doc/js/search_index.js +0 -1
  178. data/doc/js/search_index.js.gz +0 -0
  179. data/doc/js/searcher.js +0 -229
  180. data/doc/js/searcher.js.gz +0 -0
  181. data/doc/table_of_contents.html +0 -1052
  182. data/examples/cachegrind.out.1 +0 -114
  183. data/examples/cachegrind.out.1.32313213 +0 -114
  184. data/ext/ruby_prof/vc/ruby_prof_18.vcxproj +0 -108
  185. data/ext/ruby_prof/vc/ruby_prof_19.vcxproj +0 -110
@@ -1,139 +1,139 @@
1
- = Graph Profiles
2
-
3
- Graph profiles show how long each method runs, which methods call it and which
4
- methods it calls.
5
-
6
- As an example, here is the output from running printers_test.rb:
7
-
8
- Measure Mode: wall_time
9
- Thread ID: 70310439543100
10
- Fiber ID: 70310456289620
11
- Total Time: 0.05264616012573242
12
- Sort by: total_time
13
-
14
- %total %self total self wait child calls name
15
- --------------------------------------------------------------------------------
16
- 100.00% 0.01% 0.053 0.000 0.000 0.053 1 PrintersTest#setup
17
- 0.053 0.000 0.000 0.053 1/1 Object#run_primes
18
- --------------------------------------------------------------------------------
19
- 0.053 0.000 0.000 0.053 1/1 PrintersTest#setup
20
- 99.99% 0.01% 0.053 0.000 0.000 0.053 1 Object#run_primes
21
- 0.052 0.000 0.000 0.052 1/1 Object#find_primes
22
- 0.001 0.000 0.000 0.001 1/1 Object#make_random_array
23
- 0.000 0.000 0.000 0.000 1/1 Object#find_largest
24
- --------------------------------------------------------------------------------
25
- 0.052 0.000 0.000 0.052 1/1 Object#run_primes
26
- 98.35% 0.00% 0.052 0.000 0.000 0.052 1 Object#find_primes
27
- 0.052 0.000 0.000 0.051 1/1 Array#select
28
- --------------------------------------------------------------------------------
29
- 0.052 0.000 0.000 0.051 1/1 Object#find_primes
30
- 98.34% 0.61% 0.052 0.000 0.000 0.051 1 Array#select
31
- 0.051 0.000 0.000 0.051 1000/1000 Object#is_prime
32
- --------------------------------------------------------------------------------
33
- 0.051 0.000 0.000 0.051 1000/1000 Array#select
34
- 97.74% 0.93% 0.051 0.000 0.000 0.051 1000 Object#is_prime
35
- 0.051 0.051 0.000 0.000 1000/1001 Integer#upto
36
- --------------------------------------------------------------------------------
37
- 0.000 0.000 0.000 0.000 1/1001 Object#find_largest
38
- 0.051 0.051 0.000 0.000 1000/1001 Object#is_prime
39
- 96.91% 96.91% 0.051 0.051 0.000 0.000 1001 Integer#upto
40
- --------------------------------------------------------------------------------
41
- 0.001 0.000 0.000 0.001 1/1 Object#run_primes
42
- 1.51% 0.00% 0.001 0.000 0.000 0.001 1 Object#make_random_array
43
- 0.001 0.000 0.000 0.000 1/1 Array#each_index
44
- 0.000 0.000 0.000 0.000 1/1 Class#new
45
- --------------------------------------------------------------------------------
46
- 0.001 0.000 0.000 0.000 1/1 Object#make_random_array
47
- 1.50% 0.56% 0.001 0.000 0.000 0.000 1 Array#each_index
48
- 0.000 0.000 0.000 0.000 1000/1000 Kernel#rand
49
- --------------------------------------------------------------------------------
50
- 0.000 0.000 0.000 0.000 1000/1000 Array#each_index
51
- 0.94% 0.72% 0.000 0.000 0.000 0.000 1000 Kernel#rand
52
- 0.000 0.000 0.000 0.000 1000/1000 Kernel#respond_to_missing?
53
- --------------------------------------------------------------------------------
54
- 0.000 0.000 0.000 0.000 1000/1000 Kernel#rand
55
- 0.22% 0.22% 0.000 0.000 0.000 0.000 1000 Kernel#respond_to_missing?
56
- --------------------------------------------------------------------------------
57
- 0.000 0.000 0.000 0.000 1/1 Object#run_primes
58
- 0.12% 0.02% 0.000 0.000 0.000 0.000 1 Object#find_largest
59
- 0.000 0.000 0.000 0.000 1/1001 Integer#upto
60
- 0.000 0.000 0.000 0.000 1/1 Array#first
61
- --------------------------------------------------------------------------------
62
- 0.000 0.000 0.000 0.000 1/1 Object#make_random_array
63
- 0.01% 0.00% 0.000 0.000 0.000 0.000 1 Class#new
64
- 0.000 0.000 0.000 0.000 1/1 Array#initialize
65
- --------------------------------------------------------------------------------
66
- 0.000 0.000 0.000 0.000 1/1 Class#new
67
- 0.01% 0.01% 0.000 0.000 0.000 0.000 1 Array#initialize
68
- --------------------------------------------------------------------------------
69
- 0.000 0.000 0.000 0.000 1/1 Object#find_largest
70
- 0.00% 0.00% 0.000 0.000 0.000 0.000 1 Array#first
71
-
72
-
73
- == Overview
74
-
75
- Dashed lines divide the report into entries, with one entry per method. Entries
76
- are sorted by total time which is the time spent in the method plus its
77
- children.
78
-
79
- Each entry has a primary line demarked by values in the %total and %self
80
- columns. The primary line represents the method being profiled. Lines above it
81
- are the methods that called this method (parents) while the lines below it are
82
- the methods it called (children).
83
-
84
- All values are in seconds. For the primary line, the columns represent:
85
-
86
- %total - The percentage of time spent in this method and its children
87
- %self - The percentage of time spent in this method
88
- total - The time spent in this method and its children.
89
- self - The time spent in this method.
90
- wait - The time spent waiting for other threads in this method.
91
- child - The time spent in this method's children.
92
- calls - The number of times this method was called.
93
- name - The name of the method.
94
-
95
- The interpretation of method names is:
96
- MyObject#test - An instance method "test" of the class "MyObject"
97
- <Object:MyObject>#test - The <> characters indicate a singleton method on a singleton class.
98
-
99
- For example, we see that 97.74% of the time was spent in Object#is_prime and its
100
- children. Of that time, almost everything was contributed by Integer#upto.
101
- Overall, Integer#upto was called 1001 times and 1000 of those calls were made
102
- by Object#is_prime.
103
-
104
-
105
- == Parents
106
-
107
- In each entry, the lines above the primary line are the methods that called the
108
- current method. If the current method is a root method then no parents are
109
- shown.
110
-
111
- For parent lines, the columns represent:
112
-
113
- total - The time spent in the current method and its children on behalf of the parent method.
114
- self - The time spent in this method on behalf of the parent method.
115
- child - The time spent in this method's children on behalf of the parent.
116
- wait - The time spent waiting for other threads in this method's children on behalf of the parent.
117
- calls - The number of times the parent method called the current method vs. the total number of calls of the current method.
118
-
119
- Looking at the main entry for Integer#upto, we see that it was called 1000 times
120
- from Object#is_prime and 1 time from find_largest.
121
-
122
-
123
- == Children
124
-
125
- In each entry, the lines below the primary line are the methods that
126
- the current method called. If the current method is a leaf method then
127
- no children are shown.
128
-
129
- For children lines, the columns represent:
130
-
131
- total - The time spent in the child, and its descendants, on behalf of the current method
132
- self - The time spent in the child on behalf of the current method.
133
- wait - The time spent waiting for other threads in the child's and its descendants on behalf of the current method.
134
- child - The time spent in the child's descendants on behalf of the current method.
135
- calls - The number of times the child method was called by the current method vs. the total number of calls of the child method.
136
-
137
- If we look at the main entry for Objext#run_primes, we see that it called three
138
- other methods - Object#find_primes, Object#make_random_array and
139
- Object#find_largest.
1
+ = Graph Profiles
2
+
3
+ Graph profiles show how long each method runs, which methods call it and which
4
+ methods it calls.
5
+
6
+ As an example, here is the output from running printers_test.rb:
7
+
8
+ Measure Mode: wall_time
9
+ Thread ID: 70310439543100
10
+ Fiber ID: 70310456289620
11
+ Total Time: 0.05264616012573242
12
+ Sort by: total_time
13
+
14
+ %total %self total self wait child calls name
15
+ --------------------------------------------------------------------------------
16
+ 100.00% 0.01% 0.053 0.000 0.000 0.053 1 PrintersTest#setup
17
+ 0.053 0.000 0.000 0.053 1/1 Object#run_primes
18
+ --------------------------------------------------------------------------------
19
+ 0.053 0.000 0.000 0.053 1/1 PrintersTest#setup
20
+ 99.99% 0.01% 0.053 0.000 0.000 0.053 1 Object#run_primes
21
+ 0.052 0.000 0.000 0.052 1/1 Object#find_primes
22
+ 0.001 0.000 0.000 0.001 1/1 Object#make_random_array
23
+ 0.000 0.000 0.000 0.000 1/1 Object#find_largest
24
+ --------------------------------------------------------------------------------
25
+ 0.052 0.000 0.000 0.052 1/1 Object#run_primes
26
+ 98.35% 0.00% 0.052 0.000 0.000 0.052 1 Object#find_primes
27
+ 0.052 0.000 0.000 0.051 1/1 Array#select
28
+ --------------------------------------------------------------------------------
29
+ 0.052 0.000 0.000 0.051 1/1 Object#find_primes
30
+ 98.34% 0.61% 0.052 0.000 0.000 0.051 1 Array#select
31
+ 0.051 0.000 0.000 0.051 1000/1000 Object#is_prime
32
+ --------------------------------------------------------------------------------
33
+ 0.051 0.000 0.000 0.051 1000/1000 Array#select
34
+ 97.74% 0.93% 0.051 0.000 0.000 0.051 1000 Object#is_prime
35
+ 0.051 0.051 0.000 0.000 1000/1001 Integer#upto
36
+ --------------------------------------------------------------------------------
37
+ 0.000 0.000 0.000 0.000 1/1001 Object#find_largest
38
+ 0.051 0.051 0.000 0.000 1000/1001 Object#is_prime
39
+ 96.91% 96.91% 0.051 0.051 0.000 0.000 1001 Integer#upto
40
+ --------------------------------------------------------------------------------
41
+ 0.001 0.000 0.000 0.001 1/1 Object#run_primes
42
+ 1.51% 0.00% 0.001 0.000 0.000 0.001 1 Object#make_random_array
43
+ 0.001 0.000 0.000 0.000 1/1 Array#each_index
44
+ 0.000 0.000 0.000 0.000 1/1 Class#new
45
+ --------------------------------------------------------------------------------
46
+ 0.001 0.000 0.000 0.000 1/1 Object#make_random_array
47
+ 1.50% 0.56% 0.001 0.000 0.000 0.000 1 Array#each_index
48
+ 0.000 0.000 0.000 0.000 1000/1000 Kernel#rand
49
+ --------------------------------------------------------------------------------
50
+ 0.000 0.000 0.000 0.000 1000/1000 Array#each_index
51
+ 0.94% 0.72% 0.000 0.000 0.000 0.000 1000 Kernel#rand
52
+ 0.000 0.000 0.000 0.000 1000/1000 Kernel#respond_to_missing?
53
+ --------------------------------------------------------------------------------
54
+ 0.000 0.000 0.000 0.000 1000/1000 Kernel#rand
55
+ 0.22% 0.22% 0.000 0.000 0.000 0.000 1000 Kernel#respond_to_missing?
56
+ --------------------------------------------------------------------------------
57
+ 0.000 0.000 0.000 0.000 1/1 Object#run_primes
58
+ 0.12% 0.02% 0.000 0.000 0.000 0.000 1 Object#find_largest
59
+ 0.000 0.000 0.000 0.000 1/1001 Integer#upto
60
+ 0.000 0.000 0.000 0.000 1/1 Array#first
61
+ --------------------------------------------------------------------------------
62
+ 0.000 0.000 0.000 0.000 1/1 Object#make_random_array
63
+ 0.01% 0.00% 0.000 0.000 0.000 0.000 1 Class#new
64
+ 0.000 0.000 0.000 0.000 1/1 Array#initialize
65
+ --------------------------------------------------------------------------------
66
+ 0.000 0.000 0.000 0.000 1/1 Class#new
67
+ 0.01% 0.01% 0.000 0.000 0.000 0.000 1 Array#initialize
68
+ --------------------------------------------------------------------------------
69
+ 0.000 0.000 0.000 0.000 1/1 Object#find_largest
70
+ 0.00% 0.00% 0.000 0.000 0.000 0.000 1 Array#first
71
+
72
+
73
+ == Overview
74
+
75
+ Dashed lines divide the report into entries, with one entry per method. Entries
76
+ are sorted by total time which is the time spent in the method plus its
77
+ children.
78
+
79
+ Each entry has a primary line demarked by values in the %total and %self
80
+ columns. The primary line represents the method being profiled. Lines above it
81
+ are the methods that called this method (parents) while the lines below it are
82
+ the methods it called (children).
83
+
84
+ All values are in seconds. For the primary line, the columns represent:
85
+
86
+ %total - The percentage of time spent in this method and its children
87
+ %self - The percentage of time spent in this method
88
+ total - The time spent in this method and its children.
89
+ self - The time spent in this method.
90
+ wait - The time spent waiting for other threads in this method.
91
+ child - The time spent in this method's children.
92
+ calls - The number of times this method was called.
93
+ name - The name of the method.
94
+
95
+ The interpretation of method names is:
96
+ MyObject#test - An instance method "test" of the class "MyObject"
97
+ <Object:MyObject>#test - The <> characters indicate a singleton method on a singleton class.
98
+
99
+ For example, we see that 97.74% of the time was spent in Object#is_prime and its
100
+ children. Of that time, almost everything was contributed by Integer#upto.
101
+ Overall, Integer#upto was called 1001 times and 1000 of those calls were made
102
+ by Object#is_prime.
103
+
104
+
105
+ == Parents
106
+
107
+ In each entry, the lines above the primary line are the methods that called the
108
+ current method. If the current method is a root method then no parents are
109
+ shown.
110
+
111
+ For parent lines, the columns represent:
112
+
113
+ total - The time spent in the current method and its children on behalf of the parent method.
114
+ self - The time spent in this method on behalf of the parent method.
115
+ child - The time spent in this method's children on behalf of the parent.
116
+ wait - The time spent waiting for other threads in this method's children on behalf of the parent.
117
+ calls - The number of times the parent method called the current method vs. the total number of calls of the current method.
118
+
119
+ Looking at the main entry for Integer#upto, we see that it was called 1000 times
120
+ from Object#is_prime and 1 time from find_largest.
121
+
122
+
123
+ == Children
124
+
125
+ In each entry, the lines below the primary line are the methods that
126
+ the current method called. If the current method is a leaf method then
127
+ no children are shown.
128
+
129
+ For children lines, the columns represent:
130
+
131
+ total - The time spent in the child, and its descendants, on behalf of the current method
132
+ self - The time spent in the child on behalf of the current method.
133
+ wait - The time spent waiting for other threads in the child's and its descendants on behalf of the current method.
134
+ child - The time spent in the child's descendants on behalf of the current method.
135
+ calls - The number of times the child method was called by the current method vs. the total number of calls of the child method.
136
+
137
+ If we look at the main entry for Objext#run_primes, we see that it called three
138
+ other methods - Object#find_primes, Object#make_random_array and
139
+ Object#find_largest.
@@ -1,23 +1,23 @@
1
- Measure Mode: wall_time
2
- Thread ID: 70140045951280
3
- Fiber ID: 70140054192180
4
- Total: 0.002968
5
- Sort by: self_time
6
-
7
- %self total self wait child calls name
8
- 86.99 0.003 0.003 0.000 0.000 201 Integer#upto
9
- 3.11 0.003 0.000 0.000 0.003 200 Object#is_prime
10
- 2.94 0.000 0.000 0.000 0.000 200 Kernel#rand
11
- 2.82 0.003 0.000 0.000 0.003 1 Array#select
12
- 2.37 0.000 0.000 0.000 0.000 1 Array#each_index
13
- 1.02 0.000 0.000 0.000 0.000 200 Kernel#respond_to_missing?
14
- 0.18 0.003 0.000 0.000 0.003 1 PrintersTest#setup
15
- 0.14 0.000 0.000 0.000 0.000 1 Class#new
16
- 0.10 0.000 0.000 0.000 0.000 1 Object#find_largest
17
- 0.10 0.000 0.000 0.000 0.000 1 Object#make_random_array
18
- 0.06 0.003 0.000 0.000 0.003 1 Object#find_primes
19
- 0.06 0.000 0.000 0.000 0.000 1 Array#initialize
20
- 0.06 0.003 0.000 0.000 0.003 1 Object#run_primes
21
- 0.03 0.000 0.000 0.000 0.000 1 Array#first
22
-
23
- * indicates recursively called methods
1
+ Measure Mode: wall_time
2
+ Thread ID: 70140045951280
3
+ Fiber ID: 70140054192180
4
+ Total: 0.002968
5
+ Sort by: self_time
6
+
7
+ %self total self wait child calls name
8
+ 86.99 0.003 0.003 0.000 0.000 201 Integer#upto
9
+ 3.11 0.003 0.000 0.000 0.003 200 Object#is_prime
10
+ 2.94 0.000 0.000 0.000 0.000 200 Kernel#rand
11
+ 2.82 0.003 0.000 0.000 0.003 1 Array#select
12
+ 2.37 0.000 0.000 0.000 0.000 1 Array#each_index
13
+ 1.02 0.000 0.000 0.000 0.000 200 Kernel#respond_to_missing?
14
+ 0.18 0.003 0.000 0.000 0.003 1 PrintersTest#setup
15
+ 0.14 0.000 0.000 0.000 0.000 1 Class#new
16
+ 0.10 0.000 0.000 0.000 0.000 1 Object#find_largest
17
+ 0.10 0.000 0.000 0.000 0.000 1 Object#make_random_array
18
+ 0.06 0.003 0.000 0.000 0.003 1 Object#find_primes
19
+ 0.06 0.000 0.000 0.000 0.000 1 Array#initialize
20
+ 0.06 0.003 0.000 0.000 0.003 1 Object#run_primes
21
+ 0.03 0.000 0.000 0.000 0.000 1 Array#first
22
+
23
+ * indicates recursively called methods
@@ -1,760 +1,760 @@
1
-
2
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
- <html>
4
- <head>
5
- <style media="all" type="text/css">
6
- table {
7
- border-collapse: collapse;
8
- border: 1px solid #CCC;
9
- font-family: Verdana, Arial, Helvetica, sans-serif;
10
- font-size: 9pt;
11
- line-height: normal;
12
- width: 100%;
13
- }
14
-
15
- th {
16
- text-align: center;
17
- border-top: 1px solid #FB7A31;
18
- border-bottom: 1px solid #FB7A31;
19
- background: #FFC;
20
- padding: 0.3em;
21
- border-left: 1px solid silver;
22
- }
23
-
24
- tr.break td {
25
- border: 0;
26
- border-top: 1px solid #FB7A31;
27
- padding: 0;
28
- margin: 0;
29
- }
30
-
31
- tr.method td {
32
- font-weight: bold;
33
- }
34
-
35
- td {
36
- padding: 0.3em;
37
- }
38
-
39
- td:first-child {
40
- width: 190px;
41
- }
42
-
43
- td {
44
- border-left: 1px solid #CCC;
45
- text-align: center;
46
- }
47
-
48
- .method_name {
49
- text-align: left;
50
- }
51
-
52
- tfoot td {
53
- text-align: left;
54
- }
55
- </style>
56
- </head>
57
- <body>
58
- <h1>Profile Report: wall_time</h1>
59
- <!-- Threads Table -->
60
- <table>
61
- <tr>
62
- <th>Thread ID</th>
63
- <th>Fiber ID</th>
64
- <th>Total Time</th>
65
- </tr>
66
-
67
- <tr>
68
- <td>70140045951280</td>
69
- <td><a href="#70140054192180">70140054192180</a></td>
70
- <td>0.0029680728912353516</td>
71
- </tr>
72
-
73
- </table>
74
- <!-- Methods Tables -->
75
-
76
- <h2><a name="70140054192180">Thread 70140045951280, Fiber: 70140054192180</a></h2>
77
- <table>
78
- <thead>
79
- <tr>
80
- <th>%Total</th>
81
- <th>%Self</th>
82
- <th>Total</th>
83
- <th>Self</th>
84
- <th>Wait</th>
85
- <th>Child</th>
86
- <th>Calls</th>
87
- <th class="method_name">Name</th>
88
- <th>Line</th>
89
- </tr>
90
- </thead>
91
- <tbody>
92
-
93
- <!-- Parents -->
94
-
95
- <tr class="method">
96
- <td>100.00%</td>
97
- <td>0.18%</td>
98
- <td>0.00</td>
99
- <td>0.00</td>
100
- <td>0.00</td>
101
- <td>0.00</td>
102
- <td>1</td>
103
- <td class="method_name">
104
- <a name="PrintersTest_setup_70140054192180">
105
- PrintersTest#setup
106
- </a>
107
- </td>
108
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/printers_test.rb&line=14" title="/Users/stefan.kaes/src/ruby-prof/test/printers_test.rb:14">14</a></td>
109
- </tr>
110
- <!-- Children -->
111
-
112
- <tr>
113
- <td>&nbsp;</td>
114
- <td>&nbsp;</td>
115
- <td>0.00</td>
116
- <td>0.00</td>
117
- <td>0.00</td>
118
- <td>0.00</td>
119
- <td>1/1</td>
120
- <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
121
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/printers_test.rb&line=14" title="/Users/stefan.kaes/src/ruby-prof/test/printers_test.rb:14">14</a></td>
122
- </tr>
123
-
124
- <!-- Create divider row -->
125
- <tr class="break"><td colspan="9"></td></tr>
126
-
127
-
128
- <!-- Parents -->
129
-
130
- <tr>
131
- <td>&nbsp;</td>
132
- <td>&nbsp;</td>
133
- <td>0.00</td>
134
- <td>0.00</td>
135
- <td>0.00</td>
136
- <td>0.00</td>
137
- <td>1/1</td>
138
- <td class="method_name"><a href="#PrintersTest_setup_70140054192180">PrintersTest#setup</a></td>
139
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/printers_test.rb&line=14" title="/Users/stefan.kaes/src/ruby-prof/test/printers_test.rb:14">14</a></td>
140
- </tr>
141
-
142
- <tr class="method">
143
- <td>99.82%</td>
144
- <td>0.06%</td>
145
- <td>0.00</td>
146
- <td>0.00</td>
147
- <td>0.00</td>
148
- <td>0.00</td>
149
- <td>1</td>
150
- <td class="method_name">
151
- <a name="Object_run_primes_70140054192180">
152
- Object#run_primes
153
- </a>
154
- </td>
155
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=45" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:45">45</a></td>
156
- </tr>
157
- <!-- Children -->
158
-
159
- <tr>
160
- <td>&nbsp;</td>
161
- <td>&nbsp;</td>
162
- <td>0.00</td>
163
- <td>0.00</td>
164
- <td>0.00</td>
165
- <td>0.00</td>
166
- <td>1/1</td>
167
- <td class="method_name"><a href="#Object_find_primes_70140054192180">Object#find_primes</a></td>
168
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=50" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:50">50</a></td>
169
- </tr>
170
-
171
- <tr>
172
- <td>&nbsp;</td>
173
- <td>&nbsp;</td>
174
- <td>0.00</td>
175
- <td>0.00</td>
176
- <td>0.00</td>
177
- <td>0.00</td>
178
- <td>1/1</td>
179
- <td class="method_name"><a href="#Object_make_random_array_70140054192180">Object#make_random_array</a></td>
180
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=47" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:47">47</a></td>
181
- </tr>
182
-
183
- <tr>
184
- <td>&nbsp;</td>
185
- <td>&nbsp;</td>
186
- <td>0.00</td>
187
- <td>0.00</td>
188
- <td>0.00</td>
189
- <td>0.00</td>
190
- <td>1/1</td>
191
- <td class="method_name"><a href="#Object_find_largest_70140054192180">Object#find_largest</a></td>
192
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=53" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:53">53</a></td>
193
- </tr>
194
-
195
- <!-- Create divider row -->
196
- <tr class="break"><td colspan="9"></td></tr>
197
-
198
-
199
- <!-- Parents -->
200
-
201
- <tr>
202
- <td>&nbsp;</td>
203
- <td>&nbsp;</td>
204
- <td>0.00</td>
205
- <td>0.00</td>
206
- <td>0.00</td>
207
- <td>0.00</td>
208
- <td>1/1</td>
209
- <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
210
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=50" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:50">50</a></td>
211
- </tr>
212
-
213
- <tr class="method">
214
- <td>92.62%</td>
215
- <td>0.06%</td>
216
- <td>0.00</td>
217
- <td>0.00</td>
218
- <td>0.00</td>
219
- <td>0.00</td>
220
- <td>1</td>
221
- <td class="method_name">
222
- <a name="Object_find_primes_70140054192180">
223
- Object#find_primes
224
- </a>
225
- </td>
226
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=24" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:24">24</a></td>
227
- </tr>
228
- <!-- Children -->
229
-
230
- <tr>
231
- <td>&nbsp;</td>
232
- <td>&nbsp;</td>
233
- <td>0.00</td>
234
- <td>0.00</td>
235
- <td>0.00</td>
236
- <td>0.00</td>
237
- <td>1/1</td>
238
- <td class="method_name"><a href="#Array_select_70140054192180">Array#select</a></td>
239
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=25" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:25">25</a></td>
240
- </tr>
241
-
242
- <!-- Create divider row -->
243
- <tr class="break"><td colspan="9"></td></tr>
244
-
245
-
246
- <!-- Parents -->
247
-
248
- <tr>
249
- <td>&nbsp;</td>
250
- <td>&nbsp;</td>
251
- <td>0.00</td>
252
- <td>0.00</td>
253
- <td>0.00</td>
254
- <td>0.00</td>
255
- <td>1/1</td>
256
- <td class="method_name"><a href="#Object_find_primes_70140054192180">Object#find_primes</a></td>
257
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=25" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:25">25</a></td>
258
- </tr>
259
-
260
- <tr class="method">
261
- <td>92.55%</td>
262
- <td>2.82%</td>
263
- <td>0.00</td>
264
- <td>0.00</td>
265
- <td>0.00</td>
266
- <td>0.00</td>
267
- <td>1</td>
268
- <td class="method_name">
269
- <a name="Array_select_70140054192180">
270
- Array#select
271
- </a>
272
- </td>
273
- <td></td>
274
- </tr>
275
- <!-- Children -->
276
-
277
- <tr>
278
- <td>&nbsp;</td>
279
- <td>&nbsp;</td>
280
- <td>0.00</td>
281
- <td>0.00</td>
282
- <td>0.00</td>
283
- <td>0.00</td>
284
- <td>200/200</td>
285
- <td class="method_name"><a href="#Object_is_prime_70140054192180">Object#is_prime</a></td>
286
- <td></td>
287
- </tr>
288
-
289
- <!-- Create divider row -->
290
- <tr class="break"><td colspan="9"></td></tr>
291
-
292
-
293
- <!-- Parents -->
294
-
295
- <tr>
296
- <td>&nbsp;</td>
297
- <td>&nbsp;</td>
298
- <td>0.00</td>
299
- <td>0.00</td>
300
- <td>0.00</td>
301
- <td>0.00</td>
302
- <td>200/200</td>
303
- <td class="method_name"><a href="#Array_select_70140054192180">Array#select</a></td>
304
- <td></td>
305
- </tr>
306
-
307
- <tr class="method">
308
- <td>89.73%</td>
309
- <td>3.11%</td>
310
- <td>0.00</td>
311
- <td>0.00</td>
312
- <td>0.00</td>
313
- <td>0.00</td>
314
- <td>200</td>
315
- <td class="method_name">
316
- <a name="Object_is_prime_70140054192180">
317
- Object#is_prime
318
- </a>
319
- </td>
320
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=16" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:16">16</a></td>
321
- </tr>
322
- <!-- Children -->
323
-
324
- <tr>
325
- <td>&nbsp;</td>
326
- <td>&nbsp;</td>
327
- <td>0.00</td>
328
- <td>0.00</td>
329
- <td>0.00</td>
330
- <td>0.00</td>
331
- <td>200/201</td>
332
- <td class="method_name"><a href="#Integer_upto_70140054192180">Integer#upto</a></td>
333
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:18">18</a></td>
334
- </tr>
335
-
336
- <!-- Create divider row -->
337
- <tr class="break"><td colspan="9"></td></tr>
338
-
339
-
340
- <!-- Parents -->
341
-
342
- <tr>
343
- <td>&nbsp;</td>
344
- <td>&nbsp;</td>
345
- <td>0.00</td>
346
- <td>0.00</td>
347
- <td>0.00</td>
348
- <td>0.00</td>
349
- <td>1/201</td>
350
- <td class="method_name"><a href="#Object_find_largest_70140054192180">Object#find_largest</a></td>
351
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=36" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:36">36</a></td>
352
- </tr>
353
-
354
- <tr>
355
- <td>&nbsp;</td>
356
- <td>&nbsp;</td>
357
- <td>0.00</td>
358
- <td>0.00</td>
359
- <td>0.00</td>
360
- <td>0.00</td>
361
- <td>200/201</td>
362
- <td class="method_name"><a href="#Object_is_prime_70140054192180">Object#is_prime</a></td>
363
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:18">18</a></td>
364
- </tr>
365
-
366
- <tr class="method">
367
- <td>86.99%</td>
368
- <td>86.99%</td>
369
- <td>0.00</td>
370
- <td>0.00</td>
371
- <td>0.00</td>
372
- <td>0.00</td>
373
- <td>201</td>
374
- <td class="method_name">
375
- <a name="Integer_upto_70140054192180">
376
- Integer#upto
377
- </a>
378
- </td>
379
- <td></td>
380
- </tr>
381
- <!-- Children -->
382
-
383
- <!-- Create divider row -->
384
- <tr class="break"><td colspan="9"></td></tr>
385
-
386
-
387
- <!-- Parents -->
388
-
389
- <tr>
390
- <td>&nbsp;</td>
391
- <td>&nbsp;</td>
392
- <td>0.00</td>
393
- <td>0.00</td>
394
- <td>0.00</td>
395
- <td>0.00</td>
396
- <td>1/1</td>
397
- <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
398
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=47" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:47">47</a></td>
399
- </tr>
400
-
401
- <tr class="method">
402
- <td>6.64%</td>
403
- <td>0.10%</td>
404
- <td>0.00</td>
405
- <td>0.00</td>
406
- <td>0.00</td>
407
- <td>0.00</td>
408
- <td>1</td>
409
- <td class="method_name">
410
- <a name="Object_make_random_array_70140054192180">
411
- Object#make_random_array
412
- </a>
413
- </td>
414
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=7" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:7">7</a></td>
415
- </tr>
416
- <!-- Children -->
417
-
418
- <tr>
419
- <td>&nbsp;</td>
420
- <td>&nbsp;</td>
421
- <td>0.00</td>
422
- <td>0.00</td>
423
- <td>0.00</td>
424
- <td>0.00</td>
425
- <td>1/1</td>
426
- <td class="method_name"><a href="#Array_each_index_70140054192180">Array#each_index</a></td>
427
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=9" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:9">9</a></td>
428
- </tr>
429
-
430
- <tr>
431
- <td>&nbsp;</td>
432
- <td>&nbsp;</td>
433
- <td>0.00</td>
434
- <td>0.00</td>
435
- <td>0.00</td>
436
- <td>0.00</td>
437
- <td>1/1</td>
438
- <td class="method_name"><a href="#Class_new_70140054192180">Class#new</a></td>
439
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=8" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:8">8</a></td>
440
- </tr>
441
-
442
- <!-- Create divider row -->
443
- <tr class="break"><td colspan="9"></td></tr>
444
-
445
-
446
- <!-- Parents -->
447
-
448
- <tr>
449
- <td>&nbsp;</td>
450
- <td>&nbsp;</td>
451
- <td>0.00</td>
452
- <td>0.00</td>
453
- <td>0.00</td>
454
- <td>0.00</td>
455
- <td>1/1</td>
456
- <td class="method_name"><a href="#Object_make_random_array_70140054192180">Object#make_random_array</a></td>
457
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=9" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:9">9</a></td>
458
- </tr>
459
-
460
- <tr class="method">
461
- <td>6.33%</td>
462
- <td>2.37%</td>
463
- <td>0.00</td>
464
- <td>0.00</td>
465
- <td>0.00</td>
466
- <td>0.00</td>
467
- <td>1</td>
468
- <td class="method_name">
469
- <a name="Array_each_index_70140054192180">
470
- Array#each_index
471
- </a>
472
- </td>
473
- <td></td>
474
- </tr>
475
- <!-- Children -->
476
-
477
- <tr>
478
- <td>&nbsp;</td>
479
- <td>&nbsp;</td>
480
- <td>0.00</td>
481
- <td>0.00</td>
482
- <td>0.00</td>
483
- <td>0.00</td>
484
- <td>200/200</td>
485
- <td class="method_name"><a href="#Kernel_rand_70140054192180">Kernel#rand</a></td>
486
- <td></td>
487
- </tr>
488
-
489
- <!-- Create divider row -->
490
- <tr class="break"><td colspan="9"></td></tr>
491
-
492
-
493
- <!-- Parents -->
494
-
495
- <tr>
496
- <td>&nbsp;</td>
497
- <td>&nbsp;</td>
498
- <td>0.00</td>
499
- <td>0.00</td>
500
- <td>0.00</td>
501
- <td>0.00</td>
502
- <td>200/200</td>
503
- <td class="method_name"><a href="#Array_each_index_70140054192180">Array#each_index</a></td>
504
- <td></td>
505
- </tr>
506
-
507
- <tr class="method">
508
- <td>3.96%</td>
509
- <td>2.94%</td>
510
- <td>0.00</td>
511
- <td>0.00</td>
512
- <td>0.00</td>
513
- <td>0.00</td>
514
- <td>200</td>
515
- <td class="method_name">
516
- <a name="Kernel_rand_70140054192180">
517
- Kernel#rand
518
- </a>
519
- </td>
520
- <td></td>
521
- </tr>
522
- <!-- Children -->
523
-
524
- <tr>
525
- <td>&nbsp;</td>
526
- <td>&nbsp;</td>
527
- <td>0.00</td>
528
- <td>0.00</td>
529
- <td>0.00</td>
530
- <td>0.00</td>
531
- <td>200/200</td>
532
- <td class="method_name"><a href="#Kernel_respond_to_missing__70140054192180">Kernel#respond_to_missing?</a></td>
533
- <td></td>
534
- </tr>
535
-
536
- <!-- Create divider row -->
537
- <tr class="break"><td colspan="9"></td></tr>
538
-
539
-
540
- <!-- Parents -->
541
-
542
- <tr>
543
- <td>&nbsp;</td>
544
- <td>&nbsp;</td>
545
- <td>0.00</td>
546
- <td>0.00</td>
547
- <td>0.00</td>
548
- <td>0.00</td>
549
- <td>200/200</td>
550
- <td class="method_name"><a href="#Kernel_rand_70140054192180">Kernel#rand</a></td>
551
- <td></td>
552
- </tr>
553
-
554
- <tr class="method">
555
- <td>1.02%</td>
556
- <td>1.02%</td>
557
- <td>0.00</td>
558
- <td>0.00</td>
559
- <td>0.00</td>
560
- <td>0.00</td>
561
- <td>200</td>
562
- <td class="method_name">
563
- <a name="Kernel_respond_to_missing__70140054192180">
564
- Kernel#respond_to_missing?
565
- </a>
566
- </td>
567
- <td></td>
568
- </tr>
569
- <!-- Children -->
570
-
571
- <!-- Create divider row -->
572
- <tr class="break"><td colspan="9"></td></tr>
573
-
574
-
575
- <!-- Parents -->
576
-
577
- <tr>
578
- <td>&nbsp;</td>
579
- <td>&nbsp;</td>
580
- <td>0.00</td>
581
- <td>0.00</td>
582
- <td>0.00</td>
583
- <td>0.00</td>
584
- <td>1/1</td>
585
- <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
586
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=53" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:53">53</a></td>
587
- </tr>
588
-
589
- <tr class="method">
590
- <td>0.51%</td>
591
- <td>0.10%</td>
592
- <td>0.00</td>
593
- <td>0.00</td>
594
- <td>0.00</td>
595
- <td>0.00</td>
596
- <td>1</td>
597
- <td class="method_name">
598
- <a name="Object_find_largest_70140054192180">
599
- Object#find_largest
600
- </a>
601
- </td>
602
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=31" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:31">31</a></td>
603
- </tr>
604
- <!-- Children -->
605
-
606
- <tr>
607
- <td>&nbsp;</td>
608
- <td>&nbsp;</td>
609
- <td>0.00</td>
610
- <td>0.00</td>
611
- <td>0.00</td>
612
- <td>0.00</td>
613
- <td>1/201</td>
614
- <td class="method_name"><a href="#Integer_upto_70140054192180">Integer#upto</a></td>
615
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=36" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:36">36</a></td>
616
- </tr>
617
-
618
- <tr>
619
- <td>&nbsp;</td>
620
- <td>&nbsp;</td>
621
- <td>0.00</td>
622
- <td>0.00</td>
623
- <td>0.00</td>
624
- <td>0.00</td>
625
- <td>1/1</td>
626
- <td class="method_name"><a href="#Array_first_70140054192180">Array#first</a></td>
627
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=32" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:32">32</a></td>
628
- </tr>
629
-
630
- <!-- Create divider row -->
631
- <tr class="break"><td colspan="9"></td></tr>
632
-
633
-
634
- <!-- Parents -->
635
-
636
- <tr>
637
- <td>&nbsp;</td>
638
- <td>&nbsp;</td>
639
- <td>0.00</td>
640
- <td>0.00</td>
641
- <td>0.00</td>
642
- <td>0.00</td>
643
- <td>1/1</td>
644
- <td class="method_name"><a href="#Object_make_random_array_70140054192180">Object#make_random_array</a></td>
645
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=8" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:8">8</a></td>
646
- </tr>
647
-
648
- <tr class="method">
649
- <td>0.20%</td>
650
- <td>0.14%</td>
651
- <td>0.00</td>
652
- <td>0.00</td>
653
- <td>0.00</td>
654
- <td>0.00</td>
655
- <td>1</td>
656
- <td class="method_name">
657
- <a name="Class_new_70140054192180">
658
- Class#new
659
- </a>
660
- </td>
661
- <td></td>
662
- </tr>
663
- <!-- Children -->
664
-
665
- <tr>
666
- <td>&nbsp;</td>
667
- <td>&nbsp;</td>
668
- <td>0.00</td>
669
- <td>0.00</td>
670
- <td>0.00</td>
671
- <td>0.00</td>
672
- <td>1/1</td>
673
- <td class="method_name"><a href="#Array_initialize_70140054192180">Array#initialize</a></td>
674
- <td></td>
675
- </tr>
676
-
677
- <!-- Create divider row -->
678
- <tr class="break"><td colspan="9"></td></tr>
679
-
680
-
681
- <!-- Parents -->
682
-
683
- <tr>
684
- <td>&nbsp;</td>
685
- <td>&nbsp;</td>
686
- <td>0.00</td>
687
- <td>0.00</td>
688
- <td>0.00</td>
689
- <td>0.00</td>
690
- <td>1/1</td>
691
- <td class="method_name"><a href="#Class_new_70140054192180">Class#new</a></td>
692
- <td></td>
693
- </tr>
694
-
695
- <tr class="method">
696
- <td>0.06%</td>
697
- <td>0.06%</td>
698
- <td>0.00</td>
699
- <td>0.00</td>
700
- <td>0.00</td>
701
- <td>0.00</td>
702
- <td>1</td>
703
- <td class="method_name">
704
- <a name="Array_initialize_70140054192180">
705
- Array#initialize
706
- </a>
707
- </td>
708
- <td></td>
709
- </tr>
710
- <!-- Children -->
711
-
712
- <!-- Create divider row -->
713
- <tr class="break"><td colspan="9"></td></tr>
714
-
715
-
716
- <!-- Parents -->
717
-
718
- <tr>
719
- <td>&nbsp;</td>
720
- <td>&nbsp;</td>
721
- <td>0.00</td>
722
- <td>0.00</td>
723
- <td>0.00</td>
724
- <td>0.00</td>
725
- <td>1/1</td>
726
- <td class="method_name"><a href="#Object_find_largest_70140054192180">Object#find_largest</a></td>
727
- <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=32" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:32">32</a></td>
728
- </tr>
729
-
730
- <tr class="method">
731
- <td>0.03%</td>
732
- <td>0.03%</td>
733
- <td>0.00</td>
734
- <td>0.00</td>
735
- <td>0.00</td>
736
- <td>0.00</td>
737
- <td>1</td>
738
- <td class="method_name">
739
- <a name="Array_first_70140054192180">
740
- Array#first
741
- </a>
742
- </td>
743
- <td></td>
744
- </tr>
745
- <!-- Children -->
746
-
747
- <!-- Create divider row -->
748
- <tr class="break"><td colspan="9"></td></tr>
749
-
750
-
751
- </tbody>
752
- <tfoot>
753
- <tr>
754
- <td colspan="9">* indicates recursively called methods</td>
755
- </tr>
756
- </tfoot>
757
- </table>
758
-
759
- </body>
760
- </html>
1
+
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
+ <html>
4
+ <head>
5
+ <style media="all" type="text/css">
6
+ table {
7
+ border-collapse: collapse;
8
+ border: 1px solid #CCC;
9
+ font-family: Verdana, Arial, Helvetica, sans-serif;
10
+ font-size: 9pt;
11
+ line-height: normal;
12
+ width: 100%;
13
+ }
14
+
15
+ th {
16
+ text-align: center;
17
+ border-top: 1px solid #FB7A31;
18
+ border-bottom: 1px solid #FB7A31;
19
+ background: #FFC;
20
+ padding: 0.3em;
21
+ border-left: 1px solid silver;
22
+ }
23
+
24
+ tr.break td {
25
+ border: 0;
26
+ border-top: 1px solid #FB7A31;
27
+ padding: 0;
28
+ margin: 0;
29
+ }
30
+
31
+ tr.method td {
32
+ font-weight: bold;
33
+ }
34
+
35
+ td {
36
+ padding: 0.3em;
37
+ }
38
+
39
+ td:first-child {
40
+ width: 190px;
41
+ }
42
+
43
+ td {
44
+ border-left: 1px solid #CCC;
45
+ text-align: center;
46
+ }
47
+
48
+ .method_name {
49
+ text-align: left;
50
+ }
51
+
52
+ tfoot td {
53
+ text-align: left;
54
+ }
55
+ </style>
56
+ </head>
57
+ <body>
58
+ <h1>Profile Report: wall_time</h1>
59
+ <!-- Threads Table -->
60
+ <table>
61
+ <tr>
62
+ <th>Thread ID</th>
63
+ <th>Fiber ID</th>
64
+ <th>Total Time</th>
65
+ </tr>
66
+
67
+ <tr>
68
+ <td>70140045951280</td>
69
+ <td><a href="#70140054192180">70140054192180</a></td>
70
+ <td>0.0029680728912353516</td>
71
+ </tr>
72
+
73
+ </table>
74
+ <!-- Methods Tables -->
75
+
76
+ <h2><a name="70140054192180">Thread 70140045951280, Fiber: 70140054192180</a></h2>
77
+ <table>
78
+ <thead>
79
+ <tr>
80
+ <th>%Total</th>
81
+ <th>%Self</th>
82
+ <th>Total</th>
83
+ <th>Self</th>
84
+ <th>Wait</th>
85
+ <th>Child</th>
86
+ <th>Calls</th>
87
+ <th class="method_name">Name</th>
88
+ <th>Line</th>
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+
93
+ <!-- Parents -->
94
+
95
+ <tr class="method">
96
+ <td>100.00%</td>
97
+ <td>0.18%</td>
98
+ <td>0.00</td>
99
+ <td>0.00</td>
100
+ <td>0.00</td>
101
+ <td>0.00</td>
102
+ <td>1</td>
103
+ <td class="method_name">
104
+ <a name="PrintersTest_setup_70140054192180">
105
+ PrintersTest#setup
106
+ </a>
107
+ </td>
108
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/printers_test.rb&line=14" title="/Users/stefan.kaes/src/ruby-prof/test/printers_test.rb:14">14</a></td>
109
+ </tr>
110
+ <!-- Children -->
111
+
112
+ <tr>
113
+ <td>&nbsp;</td>
114
+ <td>&nbsp;</td>
115
+ <td>0.00</td>
116
+ <td>0.00</td>
117
+ <td>0.00</td>
118
+ <td>0.00</td>
119
+ <td>1/1</td>
120
+ <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
121
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/printers_test.rb&line=14" title="/Users/stefan.kaes/src/ruby-prof/test/printers_test.rb:14">14</a></td>
122
+ </tr>
123
+
124
+ <!-- Create divider row -->
125
+ <tr class="break"><td colspan="9"></td></tr>
126
+
127
+
128
+ <!-- Parents -->
129
+
130
+ <tr>
131
+ <td>&nbsp;</td>
132
+ <td>&nbsp;</td>
133
+ <td>0.00</td>
134
+ <td>0.00</td>
135
+ <td>0.00</td>
136
+ <td>0.00</td>
137
+ <td>1/1</td>
138
+ <td class="method_name"><a href="#PrintersTest_setup_70140054192180">PrintersTest#setup</a></td>
139
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/printers_test.rb&line=14" title="/Users/stefan.kaes/src/ruby-prof/test/printers_test.rb:14">14</a></td>
140
+ </tr>
141
+
142
+ <tr class="method">
143
+ <td>99.82%</td>
144
+ <td>0.06%</td>
145
+ <td>0.00</td>
146
+ <td>0.00</td>
147
+ <td>0.00</td>
148
+ <td>0.00</td>
149
+ <td>1</td>
150
+ <td class="method_name">
151
+ <a name="Object_run_primes_70140054192180">
152
+ Object#run_primes
153
+ </a>
154
+ </td>
155
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=45" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:45">45</a></td>
156
+ </tr>
157
+ <!-- Children -->
158
+
159
+ <tr>
160
+ <td>&nbsp;</td>
161
+ <td>&nbsp;</td>
162
+ <td>0.00</td>
163
+ <td>0.00</td>
164
+ <td>0.00</td>
165
+ <td>0.00</td>
166
+ <td>1/1</td>
167
+ <td class="method_name"><a href="#Object_find_primes_70140054192180">Object#find_primes</a></td>
168
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=50" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:50">50</a></td>
169
+ </tr>
170
+
171
+ <tr>
172
+ <td>&nbsp;</td>
173
+ <td>&nbsp;</td>
174
+ <td>0.00</td>
175
+ <td>0.00</td>
176
+ <td>0.00</td>
177
+ <td>0.00</td>
178
+ <td>1/1</td>
179
+ <td class="method_name"><a href="#Object_make_random_array_70140054192180">Object#make_random_array</a></td>
180
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=47" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:47">47</a></td>
181
+ </tr>
182
+
183
+ <tr>
184
+ <td>&nbsp;</td>
185
+ <td>&nbsp;</td>
186
+ <td>0.00</td>
187
+ <td>0.00</td>
188
+ <td>0.00</td>
189
+ <td>0.00</td>
190
+ <td>1/1</td>
191
+ <td class="method_name"><a href="#Object_find_largest_70140054192180">Object#find_largest</a></td>
192
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=53" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:53">53</a></td>
193
+ </tr>
194
+
195
+ <!-- Create divider row -->
196
+ <tr class="break"><td colspan="9"></td></tr>
197
+
198
+
199
+ <!-- Parents -->
200
+
201
+ <tr>
202
+ <td>&nbsp;</td>
203
+ <td>&nbsp;</td>
204
+ <td>0.00</td>
205
+ <td>0.00</td>
206
+ <td>0.00</td>
207
+ <td>0.00</td>
208
+ <td>1/1</td>
209
+ <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
210
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=50" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:50">50</a></td>
211
+ </tr>
212
+
213
+ <tr class="method">
214
+ <td>92.62%</td>
215
+ <td>0.06%</td>
216
+ <td>0.00</td>
217
+ <td>0.00</td>
218
+ <td>0.00</td>
219
+ <td>0.00</td>
220
+ <td>1</td>
221
+ <td class="method_name">
222
+ <a name="Object_find_primes_70140054192180">
223
+ Object#find_primes
224
+ </a>
225
+ </td>
226
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=24" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:24">24</a></td>
227
+ </tr>
228
+ <!-- Children -->
229
+
230
+ <tr>
231
+ <td>&nbsp;</td>
232
+ <td>&nbsp;</td>
233
+ <td>0.00</td>
234
+ <td>0.00</td>
235
+ <td>0.00</td>
236
+ <td>0.00</td>
237
+ <td>1/1</td>
238
+ <td class="method_name"><a href="#Array_select_70140054192180">Array#select</a></td>
239
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=25" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:25">25</a></td>
240
+ </tr>
241
+
242
+ <!-- Create divider row -->
243
+ <tr class="break"><td colspan="9"></td></tr>
244
+
245
+
246
+ <!-- Parents -->
247
+
248
+ <tr>
249
+ <td>&nbsp;</td>
250
+ <td>&nbsp;</td>
251
+ <td>0.00</td>
252
+ <td>0.00</td>
253
+ <td>0.00</td>
254
+ <td>0.00</td>
255
+ <td>1/1</td>
256
+ <td class="method_name"><a href="#Object_find_primes_70140054192180">Object#find_primes</a></td>
257
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=25" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:25">25</a></td>
258
+ </tr>
259
+
260
+ <tr class="method">
261
+ <td>92.55%</td>
262
+ <td>2.82%</td>
263
+ <td>0.00</td>
264
+ <td>0.00</td>
265
+ <td>0.00</td>
266
+ <td>0.00</td>
267
+ <td>1</td>
268
+ <td class="method_name">
269
+ <a name="Array_select_70140054192180">
270
+ Array#select
271
+ </a>
272
+ </td>
273
+ <td></td>
274
+ </tr>
275
+ <!-- Children -->
276
+
277
+ <tr>
278
+ <td>&nbsp;</td>
279
+ <td>&nbsp;</td>
280
+ <td>0.00</td>
281
+ <td>0.00</td>
282
+ <td>0.00</td>
283
+ <td>0.00</td>
284
+ <td>200/200</td>
285
+ <td class="method_name"><a href="#Object_is_prime_70140054192180">Object#is_prime</a></td>
286
+ <td></td>
287
+ </tr>
288
+
289
+ <!-- Create divider row -->
290
+ <tr class="break"><td colspan="9"></td></tr>
291
+
292
+
293
+ <!-- Parents -->
294
+
295
+ <tr>
296
+ <td>&nbsp;</td>
297
+ <td>&nbsp;</td>
298
+ <td>0.00</td>
299
+ <td>0.00</td>
300
+ <td>0.00</td>
301
+ <td>0.00</td>
302
+ <td>200/200</td>
303
+ <td class="method_name"><a href="#Array_select_70140054192180">Array#select</a></td>
304
+ <td></td>
305
+ </tr>
306
+
307
+ <tr class="method">
308
+ <td>89.73%</td>
309
+ <td>3.11%</td>
310
+ <td>0.00</td>
311
+ <td>0.00</td>
312
+ <td>0.00</td>
313
+ <td>0.00</td>
314
+ <td>200</td>
315
+ <td class="method_name">
316
+ <a name="Object_is_prime_70140054192180">
317
+ Object#is_prime
318
+ </a>
319
+ </td>
320
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=16" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:16">16</a></td>
321
+ </tr>
322
+ <!-- Children -->
323
+
324
+ <tr>
325
+ <td>&nbsp;</td>
326
+ <td>&nbsp;</td>
327
+ <td>0.00</td>
328
+ <td>0.00</td>
329
+ <td>0.00</td>
330
+ <td>0.00</td>
331
+ <td>200/201</td>
332
+ <td class="method_name"><a href="#Integer_upto_70140054192180">Integer#upto</a></td>
333
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:18">18</a></td>
334
+ </tr>
335
+
336
+ <!-- Create divider row -->
337
+ <tr class="break"><td colspan="9"></td></tr>
338
+
339
+
340
+ <!-- Parents -->
341
+
342
+ <tr>
343
+ <td>&nbsp;</td>
344
+ <td>&nbsp;</td>
345
+ <td>0.00</td>
346
+ <td>0.00</td>
347
+ <td>0.00</td>
348
+ <td>0.00</td>
349
+ <td>1/201</td>
350
+ <td class="method_name"><a href="#Object_find_largest_70140054192180">Object#find_largest</a></td>
351
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=36" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:36">36</a></td>
352
+ </tr>
353
+
354
+ <tr>
355
+ <td>&nbsp;</td>
356
+ <td>&nbsp;</td>
357
+ <td>0.00</td>
358
+ <td>0.00</td>
359
+ <td>0.00</td>
360
+ <td>0.00</td>
361
+ <td>200/201</td>
362
+ <td class="method_name"><a href="#Object_is_prime_70140054192180">Object#is_prime</a></td>
363
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:18">18</a></td>
364
+ </tr>
365
+
366
+ <tr class="method">
367
+ <td>86.99%</td>
368
+ <td>86.99%</td>
369
+ <td>0.00</td>
370
+ <td>0.00</td>
371
+ <td>0.00</td>
372
+ <td>0.00</td>
373
+ <td>201</td>
374
+ <td class="method_name">
375
+ <a name="Integer_upto_70140054192180">
376
+ Integer#upto
377
+ </a>
378
+ </td>
379
+ <td></td>
380
+ </tr>
381
+ <!-- Children -->
382
+
383
+ <!-- Create divider row -->
384
+ <tr class="break"><td colspan="9"></td></tr>
385
+
386
+
387
+ <!-- Parents -->
388
+
389
+ <tr>
390
+ <td>&nbsp;</td>
391
+ <td>&nbsp;</td>
392
+ <td>0.00</td>
393
+ <td>0.00</td>
394
+ <td>0.00</td>
395
+ <td>0.00</td>
396
+ <td>1/1</td>
397
+ <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
398
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=47" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:47">47</a></td>
399
+ </tr>
400
+
401
+ <tr class="method">
402
+ <td>6.64%</td>
403
+ <td>0.10%</td>
404
+ <td>0.00</td>
405
+ <td>0.00</td>
406
+ <td>0.00</td>
407
+ <td>0.00</td>
408
+ <td>1</td>
409
+ <td class="method_name">
410
+ <a name="Object_make_random_array_70140054192180">
411
+ Object#make_random_array
412
+ </a>
413
+ </td>
414
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=7" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:7">7</a></td>
415
+ </tr>
416
+ <!-- Children -->
417
+
418
+ <tr>
419
+ <td>&nbsp;</td>
420
+ <td>&nbsp;</td>
421
+ <td>0.00</td>
422
+ <td>0.00</td>
423
+ <td>0.00</td>
424
+ <td>0.00</td>
425
+ <td>1/1</td>
426
+ <td class="method_name"><a href="#Array_each_index_70140054192180">Array#each_index</a></td>
427
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=9" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:9">9</a></td>
428
+ </tr>
429
+
430
+ <tr>
431
+ <td>&nbsp;</td>
432
+ <td>&nbsp;</td>
433
+ <td>0.00</td>
434
+ <td>0.00</td>
435
+ <td>0.00</td>
436
+ <td>0.00</td>
437
+ <td>1/1</td>
438
+ <td class="method_name"><a href="#Class_new_70140054192180">Class#new</a></td>
439
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=8" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:8">8</a></td>
440
+ </tr>
441
+
442
+ <!-- Create divider row -->
443
+ <tr class="break"><td colspan="9"></td></tr>
444
+
445
+
446
+ <!-- Parents -->
447
+
448
+ <tr>
449
+ <td>&nbsp;</td>
450
+ <td>&nbsp;</td>
451
+ <td>0.00</td>
452
+ <td>0.00</td>
453
+ <td>0.00</td>
454
+ <td>0.00</td>
455
+ <td>1/1</td>
456
+ <td class="method_name"><a href="#Object_make_random_array_70140054192180">Object#make_random_array</a></td>
457
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=9" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:9">9</a></td>
458
+ </tr>
459
+
460
+ <tr class="method">
461
+ <td>6.33%</td>
462
+ <td>2.37%</td>
463
+ <td>0.00</td>
464
+ <td>0.00</td>
465
+ <td>0.00</td>
466
+ <td>0.00</td>
467
+ <td>1</td>
468
+ <td class="method_name">
469
+ <a name="Array_each_index_70140054192180">
470
+ Array#each_index
471
+ </a>
472
+ </td>
473
+ <td></td>
474
+ </tr>
475
+ <!-- Children -->
476
+
477
+ <tr>
478
+ <td>&nbsp;</td>
479
+ <td>&nbsp;</td>
480
+ <td>0.00</td>
481
+ <td>0.00</td>
482
+ <td>0.00</td>
483
+ <td>0.00</td>
484
+ <td>200/200</td>
485
+ <td class="method_name"><a href="#Kernel_rand_70140054192180">Kernel#rand</a></td>
486
+ <td></td>
487
+ </tr>
488
+
489
+ <!-- Create divider row -->
490
+ <tr class="break"><td colspan="9"></td></tr>
491
+
492
+
493
+ <!-- Parents -->
494
+
495
+ <tr>
496
+ <td>&nbsp;</td>
497
+ <td>&nbsp;</td>
498
+ <td>0.00</td>
499
+ <td>0.00</td>
500
+ <td>0.00</td>
501
+ <td>0.00</td>
502
+ <td>200/200</td>
503
+ <td class="method_name"><a href="#Array_each_index_70140054192180">Array#each_index</a></td>
504
+ <td></td>
505
+ </tr>
506
+
507
+ <tr class="method">
508
+ <td>3.96%</td>
509
+ <td>2.94%</td>
510
+ <td>0.00</td>
511
+ <td>0.00</td>
512
+ <td>0.00</td>
513
+ <td>0.00</td>
514
+ <td>200</td>
515
+ <td class="method_name">
516
+ <a name="Kernel_rand_70140054192180">
517
+ Kernel#rand
518
+ </a>
519
+ </td>
520
+ <td></td>
521
+ </tr>
522
+ <!-- Children -->
523
+
524
+ <tr>
525
+ <td>&nbsp;</td>
526
+ <td>&nbsp;</td>
527
+ <td>0.00</td>
528
+ <td>0.00</td>
529
+ <td>0.00</td>
530
+ <td>0.00</td>
531
+ <td>200/200</td>
532
+ <td class="method_name"><a href="#Kernel_respond_to_missing__70140054192180">Kernel#respond_to_missing?</a></td>
533
+ <td></td>
534
+ </tr>
535
+
536
+ <!-- Create divider row -->
537
+ <tr class="break"><td colspan="9"></td></tr>
538
+
539
+
540
+ <!-- Parents -->
541
+
542
+ <tr>
543
+ <td>&nbsp;</td>
544
+ <td>&nbsp;</td>
545
+ <td>0.00</td>
546
+ <td>0.00</td>
547
+ <td>0.00</td>
548
+ <td>0.00</td>
549
+ <td>200/200</td>
550
+ <td class="method_name"><a href="#Kernel_rand_70140054192180">Kernel#rand</a></td>
551
+ <td></td>
552
+ </tr>
553
+
554
+ <tr class="method">
555
+ <td>1.02%</td>
556
+ <td>1.02%</td>
557
+ <td>0.00</td>
558
+ <td>0.00</td>
559
+ <td>0.00</td>
560
+ <td>0.00</td>
561
+ <td>200</td>
562
+ <td class="method_name">
563
+ <a name="Kernel_respond_to_missing__70140054192180">
564
+ Kernel#respond_to_missing?
565
+ </a>
566
+ </td>
567
+ <td></td>
568
+ </tr>
569
+ <!-- Children -->
570
+
571
+ <!-- Create divider row -->
572
+ <tr class="break"><td colspan="9"></td></tr>
573
+
574
+
575
+ <!-- Parents -->
576
+
577
+ <tr>
578
+ <td>&nbsp;</td>
579
+ <td>&nbsp;</td>
580
+ <td>0.00</td>
581
+ <td>0.00</td>
582
+ <td>0.00</td>
583
+ <td>0.00</td>
584
+ <td>1/1</td>
585
+ <td class="method_name"><a href="#Object_run_primes_70140054192180">Object#run_primes</a></td>
586
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=53" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:53">53</a></td>
587
+ </tr>
588
+
589
+ <tr class="method">
590
+ <td>0.51%</td>
591
+ <td>0.10%</td>
592
+ <td>0.00</td>
593
+ <td>0.00</td>
594
+ <td>0.00</td>
595
+ <td>0.00</td>
596
+ <td>1</td>
597
+ <td class="method_name">
598
+ <a name="Object_find_largest_70140054192180">
599
+ Object#find_largest
600
+ </a>
601
+ </td>
602
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=31" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:31">31</a></td>
603
+ </tr>
604
+ <!-- Children -->
605
+
606
+ <tr>
607
+ <td>&nbsp;</td>
608
+ <td>&nbsp;</td>
609
+ <td>0.00</td>
610
+ <td>0.00</td>
611
+ <td>0.00</td>
612
+ <td>0.00</td>
613
+ <td>1/201</td>
614
+ <td class="method_name"><a href="#Integer_upto_70140054192180">Integer#upto</a></td>
615
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=36" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:36">36</a></td>
616
+ </tr>
617
+
618
+ <tr>
619
+ <td>&nbsp;</td>
620
+ <td>&nbsp;</td>
621
+ <td>0.00</td>
622
+ <td>0.00</td>
623
+ <td>0.00</td>
624
+ <td>0.00</td>
625
+ <td>1/1</td>
626
+ <td class="method_name"><a href="#Array_first_70140054192180">Array#first</a></td>
627
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=32" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:32">32</a></td>
628
+ </tr>
629
+
630
+ <!-- Create divider row -->
631
+ <tr class="break"><td colspan="9"></td></tr>
632
+
633
+
634
+ <!-- Parents -->
635
+
636
+ <tr>
637
+ <td>&nbsp;</td>
638
+ <td>&nbsp;</td>
639
+ <td>0.00</td>
640
+ <td>0.00</td>
641
+ <td>0.00</td>
642
+ <td>0.00</td>
643
+ <td>1/1</td>
644
+ <td class="method_name"><a href="#Object_make_random_array_70140054192180">Object#make_random_array</a></td>
645
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=8" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:8">8</a></td>
646
+ </tr>
647
+
648
+ <tr class="method">
649
+ <td>0.20%</td>
650
+ <td>0.14%</td>
651
+ <td>0.00</td>
652
+ <td>0.00</td>
653
+ <td>0.00</td>
654
+ <td>0.00</td>
655
+ <td>1</td>
656
+ <td class="method_name">
657
+ <a name="Class_new_70140054192180">
658
+ Class#new
659
+ </a>
660
+ </td>
661
+ <td></td>
662
+ </tr>
663
+ <!-- Children -->
664
+
665
+ <tr>
666
+ <td>&nbsp;</td>
667
+ <td>&nbsp;</td>
668
+ <td>0.00</td>
669
+ <td>0.00</td>
670
+ <td>0.00</td>
671
+ <td>0.00</td>
672
+ <td>1/1</td>
673
+ <td class="method_name"><a href="#Array_initialize_70140054192180">Array#initialize</a></td>
674
+ <td></td>
675
+ </tr>
676
+
677
+ <!-- Create divider row -->
678
+ <tr class="break"><td colspan="9"></td></tr>
679
+
680
+
681
+ <!-- Parents -->
682
+
683
+ <tr>
684
+ <td>&nbsp;</td>
685
+ <td>&nbsp;</td>
686
+ <td>0.00</td>
687
+ <td>0.00</td>
688
+ <td>0.00</td>
689
+ <td>0.00</td>
690
+ <td>1/1</td>
691
+ <td class="method_name"><a href="#Class_new_70140054192180">Class#new</a></td>
692
+ <td></td>
693
+ </tr>
694
+
695
+ <tr class="method">
696
+ <td>0.06%</td>
697
+ <td>0.06%</td>
698
+ <td>0.00</td>
699
+ <td>0.00</td>
700
+ <td>0.00</td>
701
+ <td>0.00</td>
702
+ <td>1</td>
703
+ <td class="method_name">
704
+ <a name="Array_initialize_70140054192180">
705
+ Array#initialize
706
+ </a>
707
+ </td>
708
+ <td></td>
709
+ </tr>
710
+ <!-- Children -->
711
+
712
+ <!-- Create divider row -->
713
+ <tr class="break"><td colspan="9"></td></tr>
714
+
715
+
716
+ <!-- Parents -->
717
+
718
+ <tr>
719
+ <td>&nbsp;</td>
720
+ <td>&nbsp;</td>
721
+ <td>0.00</td>
722
+ <td>0.00</td>
723
+ <td>0.00</td>
724
+ <td>0.00</td>
725
+ <td>1/1</td>
726
+ <td class="method_name"><a href="#Object_find_largest_70140054192180">Object#find_largest</a></td>
727
+ <td><a href="txmt://open?url=file:///Users/stefan.kaes/src/ruby-prof/test/prime.rb&line=32" title="/Users/stefan.kaes/src/ruby-prof/test/prime.rb:32">32</a></td>
728
+ </tr>
729
+
730
+ <tr class="method">
731
+ <td>0.03%</td>
732
+ <td>0.03%</td>
733
+ <td>0.00</td>
734
+ <td>0.00</td>
735
+ <td>0.00</td>
736
+ <td>0.00</td>
737
+ <td>1</td>
738
+ <td class="method_name">
739
+ <a name="Array_first_70140054192180">
740
+ Array#first
741
+ </a>
742
+ </td>
743
+ <td></td>
744
+ </tr>
745
+ <!-- Children -->
746
+
747
+ <!-- Create divider row -->
748
+ <tr class="break"><td colspan="9"></td></tr>
749
+
750
+
751
+ </tbody>
752
+ <tfoot>
753
+ <tr>
754
+ <td colspan="9">* indicates recursively called methods</td>
755
+ </tr>
756
+ </tfoot>
757
+ </table>
758
+
759
+ </body>
760
+ </html>