ruby-prof 0.18.0 → 1.0.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +23 -0
  3. data/LICENSE +2 -2
  4. data/README.rdoc +1 -483
  5. data/Rakefile +3 -6
  6. data/bin/ruby-prof +65 -30
  7. data/ext/ruby_prof/extconf.rb +6 -38
  8. data/ext/ruby_prof/rp_allocation.c +292 -0
  9. data/ext/ruby_prof/rp_allocation.h +31 -0
  10. data/ext/ruby_prof/rp_call_info.c +137 -279
  11. data/ext/ruby_prof/rp_call_info.h +16 -34
  12. data/ext/ruby_prof/rp_measure_allocations.c +25 -49
  13. data/ext/ruby_prof/rp_measure_memory.c +21 -56
  14. data/ext/ruby_prof/rp_measure_process_time.c +28 -36
  15. data/ext/ruby_prof/rp_measure_wall_time.c +36 -19
  16. data/ext/ruby_prof/rp_measurement.c +236 -0
  17. data/ext/ruby_prof/rp_measurement.h +49 -0
  18. data/ext/ruby_prof/rp_method.c +395 -383
  19. data/ext/ruby_prof/rp_method.h +34 -39
  20. data/ext/ruby_prof/rp_profile.c +881 -0
  21. data/ext/ruby_prof/rp_profile.h +36 -0
  22. data/ext/ruby_prof/rp_stack.c +103 -80
  23. data/ext/ruby_prof/rp_stack.h +5 -12
  24. data/ext/ruby_prof/rp_thread.c +149 -88
  25. data/ext/ruby_prof/rp_thread.h +15 -6
  26. data/ext/ruby_prof/ruby_prof.c +11 -757
  27. data/ext/ruby_prof/ruby_prof.h +4 -47
  28. data/ext/ruby_prof/vc/ruby_prof.vcxproj +10 -8
  29. data/lib/ruby-prof.rb +2 -17
  30. data/lib/ruby-prof/assets/graph_printer.html.erb +356 -0
  31. data/lib/ruby-prof/call_info.rb +35 -93
  32. data/lib/ruby-prof/call_info_visitor.rb +19 -21
  33. data/lib/ruby-prof/compatibility.rb +37 -107
  34. data/lib/ruby-prof/exclude_common_methods.rb +198 -0
  35. data/lib/ruby-prof/measurement.rb +14 -0
  36. data/lib/ruby-prof/method_info.rb +52 -83
  37. data/lib/ruby-prof/printers/abstract_printer.rb +66 -52
  38. data/lib/ruby-prof/printers/call_info_printer.rb +13 -3
  39. data/lib/ruby-prof/printers/call_stack_printer.rb +32 -28
  40. data/lib/ruby-prof/printers/call_tree_printer.rb +20 -12
  41. data/lib/ruby-prof/printers/dot_printer.rb +5 -5
  42. data/lib/ruby-prof/printers/flat_printer.rb +6 -24
  43. data/lib/ruby-prof/printers/graph_html_printer.rb +7 -192
  44. data/lib/ruby-prof/printers/graph_printer.rb +13 -15
  45. data/lib/ruby-prof/printers/multi_printer.rb +66 -23
  46. data/lib/ruby-prof/profile.rb +10 -3
  47. data/lib/ruby-prof/rack.rb +0 -3
  48. data/lib/ruby-prof/thread.rb +12 -12
  49. data/lib/ruby-prof/version.rb +1 -1
  50. data/ruby-prof.gemspec +2 -2
  51. data/test/abstract_printer_test.rb +0 -27
  52. data/test/alias_test.rb +129 -0
  53. data/test/basic_test.rb +41 -40
  54. data/test/call_info_visitor_test.rb +3 -3
  55. data/test/dynamic_method_test.rb +0 -2
  56. data/test/line_number_test.rb +120 -39
  57. data/test/marshal_test.rb +119 -0
  58. data/test/measure_allocations.rb +30 -0
  59. data/test/measure_allocations_test.rb +371 -12
  60. data/test/measure_allocations_trace_test.rb +385 -0
  61. data/test/measure_memory_trace_test.rb +756 -0
  62. data/test/measure_process_time_test.rb +821 -33
  63. data/test/measure_times.rb +54 -0
  64. data/test/measure_wall_time_test.rb +349 -145
  65. data/test/multi_printer_test.rb +1 -34
  66. data/test/parser_timings.rb +24 -0
  67. data/test/pause_resume_test.rb +5 -5
  68. data/test/prime.rb +2 -0
  69. data/test/printer_call_tree_test.rb +31 -0
  70. data/test/printer_flat_test.rb +68 -0
  71. data/test/printer_graph_html_test.rb +60 -0
  72. data/test/printer_graph_test.rb +41 -0
  73. data/test/printers_test.rb +32 -166
  74. data/test/printing_recursive_graph_test.rb +26 -72
  75. data/test/recursive_test.rb +72 -77
  76. data/test/stack_printer_test.rb +2 -15
  77. data/test/start_stop_test.rb +22 -25
  78. data/test/test_helper.rb +5 -248
  79. data/test/thread_test.rb +11 -54
  80. data/test/unique_call_path_test.rb +16 -28
  81. data/test/yarv_test.rb +1 -0
  82. metadata +24 -34
  83. data/examples/flat.txt +0 -50
  84. data/examples/graph.dot +0 -84
  85. data/examples/graph.html +0 -823
  86. data/examples/graph.txt +0 -139
  87. data/examples/multi.flat.txt +0 -23
  88. data/examples/multi.graph.html +0 -760
  89. data/examples/multi.grind.dat +0 -114
  90. data/examples/multi.stack.html +0 -547
  91. data/examples/stack.html +0 -547
  92. data/ext/ruby_prof/rp_measure.c +0 -40
  93. data/ext/ruby_prof/rp_measure.h +0 -45
  94. data/ext/ruby_prof/rp_measure_cpu_time.c +0 -136
  95. data/ext/ruby_prof/rp_measure_gc_runs.c +0 -73
  96. data/ext/ruby_prof/rp_measure_gc_time.c +0 -60
  97. data/lib/ruby-prof/aggregate_call_info.rb +0 -76
  98. data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +0 -83
  99. data/lib/ruby-prof/profile/exclude_common_methods.rb +0 -207
  100. data/lib/ruby-prof/profile/legacy_method_elimination.rb +0 -50
  101. data/test/aggregate_test.rb +0 -136
  102. data/test/block_test.rb +0 -74
  103. data/test/call_info_test.rb +0 -78
  104. data/test/fiber_test.rb +0 -79
  105. data/test/issue137_test.rb +0 -63
  106. data/test/measure_cpu_time_test.rb +0 -212
  107. data/test/measure_gc_runs_test.rb +0 -32
  108. data/test/measure_gc_time_test.rb +0 -36
  109. data/test/measure_memory_test.rb +0 -33
  110. data/test/method_elimination_test.rb +0 -84
  111. data/test/module_test.rb +0 -45
  112. data/test/stack_test.rb +0 -138
@@ -29,6 +29,7 @@ class BugsTest < TestCase
29
29
  end
30
30
 
31
31
  private
32
+
32
33
  def define_methods
33
34
  return if respond_to?(:array_push_optimized)
34
35
  old_compile_option = RubyVM::InstructionSequence.compile_option
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-prof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-27 00:00:00.000000000 Z
11
+ date: 2019-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -73,29 +73,21 @@ files:
73
73
  - Rakefile
74
74
  - bin/ruby-prof
75
75
  - bin/ruby-prof-check-trace
76
- - examples/flat.txt
77
- - examples/graph.dot
78
- - examples/graph.html
79
- - examples/graph.txt
80
- - examples/multi.flat.txt
81
- - examples/multi.graph.html
82
- - examples/multi.grind.dat
83
- - examples/multi.stack.html
84
- - examples/stack.html
85
76
  - ext/ruby_prof/extconf.rb
77
+ - ext/ruby_prof/rp_allocation.c
78
+ - ext/ruby_prof/rp_allocation.h
86
79
  - ext/ruby_prof/rp_call_info.c
87
80
  - ext/ruby_prof/rp_call_info.h
88
- - ext/ruby_prof/rp_measure.c
89
- - ext/ruby_prof/rp_measure.h
90
81
  - ext/ruby_prof/rp_measure_allocations.c
91
- - ext/ruby_prof/rp_measure_cpu_time.c
92
- - ext/ruby_prof/rp_measure_gc_runs.c
93
- - ext/ruby_prof/rp_measure_gc_time.c
94
82
  - ext/ruby_prof/rp_measure_memory.c
95
83
  - ext/ruby_prof/rp_measure_process_time.c
96
84
  - ext/ruby_prof/rp_measure_wall_time.c
85
+ - ext/ruby_prof/rp_measurement.c
86
+ - ext/ruby_prof/rp_measurement.h
97
87
  - ext/ruby_prof/rp_method.c
98
88
  - ext/ruby_prof/rp_method.h
89
+ - ext/ruby_prof/rp_profile.c
90
+ - ext/ruby_prof/rp_profile.h
99
91
  - ext/ruby_prof/rp_stack.c
100
92
  - ext/ruby_prof/rp_stack.h
101
93
  - ext/ruby_prof/rp_thread.c
@@ -105,13 +97,15 @@ files:
105
97
  - ext/ruby_prof/vc/ruby_prof.sln
106
98
  - ext/ruby_prof/vc/ruby_prof.vcxproj
107
99
  - lib/ruby-prof.rb
108
- - lib/ruby-prof/aggregate_call_info.rb
109
100
  - lib/ruby-prof/assets/call_stack_printer.css.html
110
101
  - lib/ruby-prof/assets/call_stack_printer.js.html
111
102
  - lib/ruby-prof/assets/call_stack_printer.png
103
+ - lib/ruby-prof/assets/graph_printer.html.erb
112
104
  - lib/ruby-prof/call_info.rb
113
105
  - lib/ruby-prof/call_info_visitor.rb
114
106
  - lib/ruby-prof/compatibility.rb
107
+ - lib/ruby-prof/exclude_common_methods.rb
108
+ - lib/ruby-prof/measurement.rb
115
109
  - lib/ruby-prof/method_info.rb
116
110
  - lib/ruby-prof/printers/abstract_printer.rb
117
111
  - lib/ruby-prof/printers/call_info_printer.rb
@@ -119,13 +113,10 @@ files:
119
113
  - lib/ruby-prof/printers/call_tree_printer.rb
120
114
  - lib/ruby-prof/printers/dot_printer.rb
121
115
  - lib/ruby-prof/printers/flat_printer.rb
122
- - lib/ruby-prof/printers/flat_printer_with_line_numbers.rb
123
116
  - lib/ruby-prof/printers/graph_html_printer.rb
124
117
  - lib/ruby-prof/printers/graph_printer.rb
125
118
  - lib/ruby-prof/printers/multi_printer.rb
126
119
  - lib/ruby-prof/profile.rb
127
- - lib/ruby-prof/profile/exclude_common_methods.rb
128
- - lib/ruby-prof/profile/legacy_method_elimination.rb
129
120
  - lib/ruby-prof/rack.rb
130
121
  - lib/ruby-prof/task.rb
131
122
  - lib/ruby-prof/thread.rb
@@ -133,10 +124,8 @@ files:
133
124
  - lib/unprof.rb
134
125
  - ruby-prof.gemspec
135
126
  - test/abstract_printer_test.rb
136
- - test/aggregate_test.rb
127
+ - test/alias_test.rb
137
128
  - test/basic_test.rb
138
- - test/block_test.rb
139
- - test/call_info_test.rb
140
129
  - test/call_info_visitor_test.rb
141
130
  - test/duplicate_names_test.rb
142
131
  - test/dynamic_method_test.rb
@@ -144,29 +133,30 @@ files:
144
133
  - test/exceptions_test.rb
145
134
  - test/exclude_methods_test.rb
146
135
  - test/exclude_threads_test.rb
147
- - test/fiber_test.rb
148
- - test/issue137_test.rb
149
136
  - test/line_number_test.rb
137
+ - test/marshal_test.rb
138
+ - test/measure_allocations.rb
150
139
  - test/measure_allocations_test.rb
151
- - test/measure_cpu_time_test.rb
152
- - test/measure_gc_runs_test.rb
153
- - test/measure_gc_time_test.rb
154
- - test/measure_memory_test.rb
140
+ - test/measure_allocations_trace_test.rb
141
+ - test/measure_memory_trace_test.rb
155
142
  - test/measure_process_time_test.rb
143
+ - test/measure_times.rb
156
144
  - test/measure_wall_time_test.rb
157
- - test/method_elimination_test.rb
158
- - test/module_test.rb
159
145
  - test/multi_printer_test.rb
160
146
  - test/no_method_class_test.rb
147
+ - test/parser_timings.rb
161
148
  - test/pause_resume_test.rb
162
149
  - test/prime.rb
150
+ - test/printer_call_tree_test.rb
151
+ - test/printer_flat_test.rb
152
+ - test/printer_graph_html_test.rb
153
+ - test/printer_graph_test.rb
163
154
  - test/printers_test.rb
164
155
  - test/printing_recursive_graph_test.rb
165
156
  - test/rack_test.rb
166
157
  - test/recursive_test.rb
167
158
  - test/singleton_test.rb
168
159
  - test/stack_printer_test.rb
169
- - test/stack_test.rb
170
160
  - test/start_stop_test.rb
171
161
  - test/test_helper.rb
172
162
  - test/thread_test.rb
@@ -184,14 +174,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
174
  requirements:
185
175
  - - ">="
186
176
  - !ruby/object:Gem::Version
187
- version: 1.9.3
177
+ version: 2.4.0
188
178
  required_rubygems_version: !ruby/object:Gem::Requirement
189
179
  requirements:
190
180
  - - ">="
191
181
  - !ruby/object:Gem::Version
192
182
  version: '0'
193
183
  requirements: []
194
- rubygems_version: 3.0.3
184
+ rubygems_version: 3.0.4
195
185
  signing_key:
196
186
  specification_version: 4
197
187
  summary: Fast Ruby profiler
@@ -1,50 +0,0 @@
1
- = Flat Profiles
2
-
3
- Flat profiles show the total amount of time spent in each method.
4
- As an example, here is the output from running printers_test.rb.
5
-
6
- Measure Mode: wall_time
7
- Thread ID: 70355159212340
8
- Fiber ID: 70355171633140
9
- Total: 0.060485
10
- Sort by: self_time
11
-
12
- %self total self wait child calls name
13
- 97.07 0.059 0.059 0.000 0.000 1001 Integer#upto
14
- 0.92 0.059 0.001 0.000 0.059 1000 Object#is_prime
15
- 0.66 0.060 0.000 0.000 0.059 1 Array#select
16
- 0.59 0.000 0.000 0.000 0.000 1000 Kernel#rand
17
- 0.50 0.001 0.000 0.000 0.000 1 Array#each_index
18
- 0.20 0.000 0.000 0.000 0.000 1000 Kernel#respond_to_missing?
19
- 0.01 0.000 0.000 0.000 0.000 1 Object#find_largest
20
- 0.01 0.060 0.000 0.000 0.060 1 PrintersTest#setup
21
- 0.01 0.060 0.000 0.000 0.060 1 Object#find_primes
22
- 0.01 0.000 0.000 0.000 0.000 1 Class#new
23
- 0.01 0.060 0.000 0.000 0.060 1 Object#run_primes
24
- 0.00 0.000 0.000 0.000 0.000 1 Array#first
25
- 0.00 0.001 0.000 0.000 0.001 1 Object#make_random_array
26
- 0.00 0.000 0.000 0.000 0.000 1 Array#initialize
27
-
28
- All values are in seconds.
29
-
30
- The columns are:
31
-
32
- %self - The percentage of time spent in this method, derived from self_time/total_time
33
- total - The time spent in this method and its children.
34
- self - The time spent in this method.
35
- wait - amount of time this method waited for other threads
36
- child - The time spent in this method's children.
37
- calls - The number of times this method was called.
38
- name - The name of the method.
39
-
40
- Methods are sorted based on %self, therefore the methods that execute the longest are listed
41
- first.
42
-
43
- For example, wee can see that Integer#upto took the most time, 0.059
44
- seconds. Method Object#is_prime calls this method, so the 0.59
45
- seconds appear as child time for Object#is_prime.
46
-
47
- The interpretation of method names is:
48
- * MyObject#test - An instance method "test" of the class "MyObject"
49
- * <Object:MyObject>#test - The <> characters indicate a singleton method on a singleton class.
50
-
@@ -1,84 +0,0 @@
1
- digraph "Profile" {
2
- labelloc=t;
3
- labeljust=l;
4
- subgraph "Thread 70140045951280" {
5
- 70140046535720 [label="setup\n(100%)"];
6
- 70140046535720 -> 70140046535660 [label="1/1" fontsize=10 fontcolor="#666666"];
7
- 70140046535660 [label="run_primes\n(100%)"];
8
- 70140046535660 -> 70140046534940 [label="1/1" fontsize=10 fontcolor="#666666"];
9
- 70140046535660 -> 70140046535640 [label="1/1" fontsize=10 fontcolor="#666666"];
10
- 70140046535660 -> 70140046534640 [label="1/1" fontsize=10 fontcolor="#666666"];
11
- 70140046534940 [label="find_primes\n(93%)"];
12
- 70140046534940 -> 70140046534920 [label="1/1" fontsize=10 fontcolor="#666666"];
13
- 70140046534920 [label="select\n(93%)"];
14
- 70140046534920 -> 70140046534840 [label="200/200" fontsize=10 fontcolor="#666666"];
15
- 70140046534840 [label="is_prime\n(90%)"];
16
- 70140046534840 -> 70140046534820 [label="200/201" fontsize=10 fontcolor="#666666"];
17
- 70140046534820 [label="upto\n(87%)"];
18
- 70140046535640 [label="make_random_array\n(7%)"];
19
- 70140046535640 -> 70140046535500 [label="1/1" fontsize=10 fontcolor="#666666"];
20
- 70140046535640 -> 70140046535600 [label="1/1" fontsize=10 fontcolor="#666666"];
21
- 70140046535500 [label="each_index\n(6%)"];
22
- 70140046535500 -> 70140046535140 [label="200/200" fontsize=10 fontcolor="#666666"];
23
- 70140046535140 [label="rand\n(4%)"];
24
- 70140046535140 -> 70140046535100 [label="200/200" fontsize=10 fontcolor="#666666"];
25
- 70140046535100 [label="respond_to_missing?\n(1%)"];
26
- 70140046534640 [label="find_largest\n(1%)"];
27
- 70140046534640 -> 70140046534820 [label="1/201" fontsize=10 fontcolor="#666666"];
28
- 70140046534640 -> 70140046534620 [label="1/1" fontsize=10 fontcolor="#666666"];
29
- 70140046535600 [label="new\n(0%)"];
30
- 70140046535600 -> 70140046535580 [label="1/1" fontsize=10 fontcolor="#666666"];
31
- 70140046535580 [label="initialize\n(0%)"];
32
- 70140046534620 [label="first\n(0%)"];
33
- }
34
- subgraph cluster_70140046962360 {
35
- label = "PrintersTest";
36
- fontcolor = "#666666";
37
- fontsize = 16;
38
- color = "#666666";
39
- 70140046535720;
40
- }
41
- subgraph cluster_70140046962240 {
42
- label = "Object";
43
- fontcolor = "#666666";
44
- fontsize = 16;
45
- color = "#666666";
46
- 70140046535660;
47
- 70140046535640;
48
- 70140046534940;
49
- 70140046534840;
50
- 70140046534640;
51
- }
52
- subgraph cluster_70140046962040 {
53
- label = "Class";
54
- fontcolor = "#666666";
55
- fontsize = 16;
56
- color = "#666666";
57
- 70140046535600;
58
- }
59
- subgraph cluster_70140046961920 {
60
- label = "Array";
61
- fontcolor = "#666666";
62
- fontsize = 16;
63
- color = "#666666";
64
- 70140046535580;
65
- 70140046535500;
66
- 70140046534920;
67
- 70140046534620;
68
- }
69
- subgraph cluster_70140046961720 {
70
- label = "Kernel";
71
- fontcolor = "#666666";
72
- fontsize = 16;
73
- color = "#666666";
74
- 70140046535140;
75
- 70140046535100;
76
- }
77
- subgraph cluster_70140046961280 {
78
- label = "Integer";
79
- fontcolor = "#666666";
80
- fontsize = 16;
81
- color = "#666666";
82
- 70140046534820;
83
- }
84
- }
@@ -1,823 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
- <html>
3
- <head>
4
- <style media="all" type="text/css">
5
- table {
6
- border-collapse: collapse;
7
- border: 1px solid #CCC;
8
- font-family: Verdana, Arial, Helvetica, sans-serif;
9
- font-size: 9pt;
10
- line-height: normal;
11
- }
12
-
13
- th {
14
- text-align: center;
15
- border-top: 1px solid #FB7A31;
16
- border-bottom: 1px solid #FB7A31;
17
- background: #FFC;
18
- padding: 0.3em;
19
- border-left: 1px solid silver;
20
- }
21
-
22
- tr.break td {
23
- border: 0;
24
- border-top: 1px solid #FB7A31;
25
- padding: 0;
26
- margin: 0;
27
- }
28
-
29
- tr.method td {
30
- font-weight: bold;
31
- }
32
-
33
- td {
34
- padding: 0.3em;
35
- }
36
-
37
- td:first-child {
38
- width: 190px;
39
- }
40
-
41
- td {
42
- border-left: 1px solid #CCC;
43
- text-align: center;
44
- }
45
- </style>
46
- </head>
47
- <body>
48
- <h1> Graph Profile</h1>
49
- <p>Graph profiles show how long each method runs, which methods call it
50
- and which methods it calls. To understand how to read a graph profile, refer to
51
- the <a href="graph.txt">documentation</a> for the text graph report. </p>
52
- <p>The main advantage of an HTML graph format versus the text format is the use of
53
- hyperlinks to jump between methods. This makes it easier to understand the flow
54
- of control through a program and which methods take the most time.</p>
55
- <p>Below is the output from running printers_test.rb reproduced in HTML. </p>
56
- <p>Profile Report</p>
57
-
58
- <table>
59
- <tr>
60
- <th>Thread ID</th>
61
- <th>Total Time</th>
62
- </tr>
63
- <tr>
64
- <td><a href="#21277412">21277412</a></td>
65
- <td>8.766</td>
66
- </tr>
67
- </table>
68
-
69
- <h2><a name="21277412">Thread 21277412</a></h2>
70
- <table>
71
- <tr>
72
- <th> %Total</th>
73
- <th> %Self</th>
74
- <th> Total</th>
75
- <th> Self</th>
76
- <th> Children</th>
77
- <th> Calls</th>
78
- <th>Name</th>
79
- </tr>
80
-
81
- <tr class="method">
82
- <td> 100.00%</td>
83
- <td> 0.00%</td>
84
- <td> 8.77</td>
85
- <td> 0.00</td>
86
- <td> 8.77</td>
87
- <td> 1</td>
88
- <td><a name="_toplevel_21277412">#toplevel</a></td>
89
- </tr>
90
-
91
- <tr>
92
- <td>&nbsp;</td>
93
- <td>&nbsp;</td>
94
- <td> 8.77</td>
95
- <td> 0.00</td>
96
- <td> 8.77</td>
97
- <td> 1/1</td>
98
- <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td>
99
- </tr>
100
-
101
- <tr class="break">
102
- <td colspan="7"></td>
103
- </tr>
104
-
105
- <tr>
106
- <td>&nbsp;</td>
107
- <td>&nbsp;</td>
108
- <td> 8.77</td>
109
- <td> 0.00</td>
110
- <td> 8.77</td>
111
- <td> 1/1</td>
112
- <td><a href="#_toplevel_21277412">#toplevel</a></td>
113
- </tr>
114
- <tr class="method">
115
- <td> 100.00%</td>
116
- <td> 0.00%</td>
117
- <td> 8.77</td>
118
- <td> 0.00</td>
119
- <td> 8.77</td>
120
- <td> 1</td>
121
- <td><a name="Object_run_primes_21277412">Object#run_primes</a></td>
122
- </tr>
123
-
124
- <tr>
125
- <td>&nbsp;</td>
126
- <td>&nbsp;</td>
127
- <td> 0.02</td>
128
- <td> 0.00</td>
129
- <td> 0.02</td>
130
- <td> 1/1</td>
131
- <td><a href="#Object_make_random_array_21277412">Object#make_random_array</a></td>
132
- </tr>
133
- <tr>
134
- <td>&nbsp;</td>
135
- <td>&nbsp;</td>
136
- <td> 2.09</td>
137
- <td> 0.00</td>
138
- <td> 2.09</td>
139
- <td> 1/1</td>
140
- <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td>
141
- </tr>
142
- <tr>
143
- <td>&nbsp;</td>
144
- <td>&nbsp;</td>
145
- <td> 6.66</td>
146
- <td> 0.00</td>
147
- <td> 6.66</td>
148
- <td> 1/1</td>
149
- <td><a href="#Object_find_primes_21277412">Object#find_primes</a></td>
150
- </tr>
151
-
152
- <tr class="break">
153
- <td colspan="7"></td>
154
- </tr>
155
-
156
- <tr>
157
- <td>&nbsp;</td>
158
- <td>&nbsp;</td>
159
- <td> 6.63</td>
160
- <td> 4.06</td>
161
- <td> 2.56</td>
162
- <td> 500/501</td>
163
- <td><a href="#Object_is_prime_21277412">Object#is_prime</a></td>
164
- </tr>
165
- <tr>
166
- <td>&nbsp;</td>
167
- <td>&nbsp;</td>
168
- <td> 2.09</td>
169
- <td> 0.00</td>
170
- <td> 2.09</td>
171
- <td> 1/501</td>
172
- <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td>
173
- </tr>
174
- <tr class="method">
175
- <td> 99.48%</td>
176
- <td> 46.34%</td>
177
- <td> 8.72</td>
178
- <td> 4.06</td>
179
- <td> 4.66</td>
180
- <td> 501</td>
181
- <td><a name="Integer_upto_21277412">Integer#upto</a></td>
182
- </tr>
183
-
184
- <tr>
185
- <td>&nbsp;</td>
186
- <td>&nbsp;</td>
187
- <td> 0.00</td>
188
- <td> 0.00</td>
189
- <td> 0.00</td>
190
- <td> 61/61</td>
191
- <td><a href="#Array_[]_21277412">Array#[]</a></td>
192
- </tr>
193
- <tr>
194
- <td>&nbsp;</td>
195
- <td>&nbsp;</td>
196
- <td> 0.00</td>
197
- <td> 0.00</td>
198
- <td> 0.00</td>
199
- <td> 61/61</td>
200
- <td><a href="#Fixnum_>_21277412">Fixnum#_</a></td>
201
- </tr>
202
- <tr>
203
- <td>&nbsp;</td>
204
- <td>&nbsp;</td>
205
- <td> 2.09</td>
206
- <td> 2.09</td>
207
- <td> 0.00</td>
208
- <td> 61/61</td>
209
- <td><a href="#Kernel_sleep_21277412">Kernel.sleep</a></td>
210
- </tr>
211
- <tr>
212
- <td>&nbsp;</td>
213
- <td>&nbsp;</td>
214
- <td> 1.24</td>
215
- <td> 1.24</td>
216
- <td> 0.00</td>
217
- <td> 250862/250862</td>
218
- <td><a href="#Fixnum____21277412">Fixnum#==</a></td>
219
- </tr>
220
- <tr>
221
- <td>&nbsp;</td>
222
- <td>&nbsp;</td>
223
- <td> 1.33</td>
224
- <td> 1.33</td>
225
- <td> 0.00</td>
226
- <td> 250862/250862</td>
227
- <td><a href="#Fixnum_%_21277412">Fixnum#%</a></td>
228
- </tr>
229
-
230
- <tr class="break">
231
- <td colspan="7"></td>
232
- </tr>
233
-
234
- <tr>
235
- <td>&nbsp;</td>
236
- <td>&nbsp;</td>
237
- <td> 6.66</td>
238
- <td> 0.01</td>
239
- <td> 6.64</td>
240
- <td> 1/1</td>
241
- <td><a href="#Object_find_primes_21277412">Object#find_primes</a></td>
242
- </tr>
243
- <tr class="method">
244
- <td> 75.93%</td>
245
- <td> 0.17%</td>
246
- <td> 6.66</td>
247
- <td> 0.01</td>
248
- <td> 6.64</td>
249
- <td> 1</td>
250
- <td><a name="Array_select_21277412">Array#select</a></td>
251
- </tr>
252
-
253
- <tr>
254
- <td>&nbsp;</td>
255
- <td>&nbsp;</td>
256
- <td> 6.64</td>
257
- <td> 0.01</td>
258
- <td> 6.63</td>
259
- <td> 500/500</td>
260
- <td><a href="#Object_is_prime_21277412">Object#is_prime</a></td>
261
- </tr>
262
-
263
- <tr class="break">
264
- <td colspan="7"></td>
265
- </tr>
266
-
267
- <tr>
268
- <td>&nbsp;</td>
269
- <td>&nbsp;</td>
270
- <td> 6.66</td>
271
- <td> 0.00</td>
272
- <td> 6.66</td>
273
- <td> 1/1</td>
274
- <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td>
275
- </tr>
276
- <tr class="method">
277
- <td> 75.93%</td>
278
- <td> 0.00%</td>
279
- <td> 6.66</td>
280
- <td> 0.00</td>
281
- <td> 6.66</td>
282
- <td> 1</td>
283
- <td><a name="Object_find_primes_21277412">Object#find_primes</a></td>
284
- </tr>
285
- <tr>
286
- <td>&nbsp;</td>
287
- <td>&nbsp;</td>
288
- <td> 6.66</td>
289
- <td> 0.01</td>
290
- <td> 6.64</td>
291
- <td> 1/1</td>
292
- <td><a href="#Array_select_21277412">Array#select</a></td>
293
- </tr>
294
- <tr class="break">
295
- <td colspan="7"></td>
296
- </tr>
297
-
298
- <tr>
299
- <td>&nbsp;</td>
300
- <td>&nbsp;</td>
301
- <td> 6.64</td>
302
- <td> 0.01</td>
303
- <td> 6.63</td>
304
- <td> 500/500</td>
305
- <td><a href="#Array_select_21277412">Array#select</a></td>
306
- </tr>
307
- <tr class="method">
308
- <td> 75.76%</td>
309
- <td> 0.17%</td>
310
- <td> 6.64</td>
311
- <td> 0.01</td>
312
- <td> 6.63</td>
313
- <td> 500</td>
314
- <td><a name="Object_is_prime_21277412">Object#is_prime</a></td>
315
- </tr>
316
-
317
- <tr>
318
- <td>&nbsp;</td>
319
- <td>&nbsp;</td>
320
- <td> 0.00</td>
321
- <td> 0.00</td>
322
- <td> 0.00</td>
323
- <td> 500/501</td>
324
- <td><a href="#Fixnum_-_21277412">Fixnum#-</a></td>
325
- </tr>
326
- <tr>
327
- <td>&nbsp;</td>
328
- <td>&nbsp;</td>
329
- <td> 6.63</td>
330
- <td> 4.06</td>
331
- <td> 2.56</td>
332
- <td> 500/501</td>
333
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
334
- </tr>
335
-
336
- <tr class="break">
337
- <td colspan="7"></td>
338
- </tr>
339
-
340
- <tr>
341
- <td>&nbsp;</td>
342
- <td>&nbsp;</td>
343
- <td> 2.09</td>
344
- <td> 0.00</td>
345
- <td> 2.09</td>
346
- <td> 1/1</td>
347
- <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td>
348
- </tr>
349
- <tr class="method">
350
- <td> 23.89%</td>
351
- <td> 0.00%</td>
352
- <td> 2.09</td>
353
- <td> 0.00</td>
354
- <td> 2.09</td>
355
- <td> 1</td>
356
- <td><a name="Object_find_largest_21277412">Object#find_largest</a></td>
357
- </tr>
358
-
359
- <tr>
360
- <td>&nbsp;</td>
361
- <td>&nbsp;</td>
362
- <td> 0.00</td>
363
- <td> 0.00</td>
364
- <td> 0.00</td>
365
- <td> 1/501</td>
366
- <td><a href="#Fixnum_-_21277412">Fixnum#-</a></td>
367
- </tr>
368
- <tr>
369
- <td>&nbsp;</td>
370
- <td>&nbsp;</td>
371
- <td> 2.09</td>
372
- <td> 0.00</td>
373
- <td> 2.09</td>
374
- <td> 1/501</td>
375
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
376
- </tr>
377
- <tr>
378
- <td>&nbsp;</td>
379
- <td>&nbsp;</td>
380
- <td> 0.00</td>
381
- <td> 0.00</td>
382
- <td> 0.00</td>
383
- <td> 1/1</td>
384
- <td><a href="#Array_first_21277412">Array#first</a></td>
385
- </tr>
386
- <tr>
387
- <td>&nbsp;</td>
388
- <td>&nbsp;</td>
389
- <td> 0.00</td>
390
- <td> 0.00</td>
391
- <td> 0.00</td>
392
- <td> 1/1</td>
393
- <td><a href="#Array_length_21277412">Array#length</a></td>
394
- </tr>
395
-
396
- <tr class="break">
397
- <td colspan="7"></td>
398
- </tr>
399
-
400
- <tr>
401
- <td>&nbsp;</td>
402
- <td>&nbsp;</td>
403
- <td> 2.09</td>
404
- <td> 2.09</td>
405
- <td> 0.00</td>
406
- <td> 61/61</td>
407
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
408
- </tr>
409
- <tr class="method">
410
- <td> 23.89%</td>
411
- <td> 23.89%</td>
412
- <td> 2.09</td>
413
- <td> 2.09</td>
414
- <td> 0.00</td>
415
- <td> 61</td>
416
- <td><a name="Kernel_sleep_21277412">Kernel.sleep</a></td>
417
- </tr>
418
-
419
-
420
- <tr class="break">
421
- <td colspan="7"></td>
422
- </tr>
423
-
424
- <tr>
425
- <td>&nbsp;</td>
426
- <td>&nbsp;</td>
427
- <td> 1.33</td>
428
- <td> 1.33</td>
429
- <td> 0.00</td>
430
- <td> 250862/250862</td>
431
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
432
- </tr>
433
- <tr class="method">
434
- <td> 15.12%</td>
435
- <td> 15.12%</td>
436
- <td> 1.33</td>
437
- <td> 1.33</td>
438
- <td> 0.00</td>
439
- <td> 250862</td>
440
- <td><a name="Fixnum_%_21277412">Fixnum#%</a></td>
441
- </tr>
442
-
443
- <tr class="break">
444
- <td colspan="7"></td>
445
- </tr>
446
-
447
- <tr>
448
- <td>&nbsp;</td>
449
- <td>&nbsp;</td>
450
- <td> 1.24</td>
451
- <td> 1.24</td>
452
- <td> 0.00</td>
453
- <td> 250862/250862</td>
454
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
455
- </tr>
456
- <tr class="method">
457
- <td> 14.13%</td>
458
- <td> 14.13%</td>
459
- <td> 1.24</td>
460
- <td> 1.24</td>
461
- <td> 0.00</td>
462
- <td> 250862</td>
463
- <td><a name="Fixnum____21277412">Fixnum#==</a></td>
464
- </tr>
465
-
466
-
467
- <tr class="break">
468
- <td colspan="7"></td>
469
- </tr>
470
-
471
- <tr>
472
- <td>&nbsp;</td>
473
- <td>&nbsp;</td>
474
- <td> 0.02</td>
475
- <td> 0.00</td>
476
- <td> 0.02</td>
477
- <td> 1/1</td>
478
- <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td>
479
- </tr>
480
- <tr class="method">
481
- <td> 0.18%</td>
482
- <td> 0.00%</td>
483
- <td> 0.02</td>
484
- <td> 0.00</td>
485
- <td> 0.02</td>
486
- <td> 1</td>
487
- <td><a name="Object_make_random_array_21277412">Object#make_random_array</a></td>
488
- </tr>
489
-
490
- <tr>
491
- <td>&nbsp;</td>
492
- <td>&nbsp;</td>
493
- <td> 0.02</td>
494
- <td> 0.02</td>
495
- <td> 0.00</td>
496
- <td> 1/1</td>
497
- <td><a href="#Array_each_index_21277412">Array#each_index</a></td>
498
- </tr>
499
- <tr>
500
- <td>&nbsp;</td>
501
- <td>&nbsp;</td>
502
- <td> 0.00</td>
503
- <td> 0.00</td>
504
- <td> 0.00</td>
505
- <td> 1/1</td>
506
- <td><a href="#Class_new_21277412">Class#new</a></td>
507
- </tr>
508
-
509
- <tr class="break">
510
- <td colspan="7"></td>
511
- </tr>
512
-
513
- <tr>
514
- <td>&nbsp;</td>
515
- <td>&nbsp;</td>
516
- <td> 0.02</td>
517
- <td> 0.02</td>
518
- <td> 0.00</td>
519
- <td> 1/1</td>
520
- <td><a href="#Object_make_random_array_21277412">Object#make_random_array</a></td>
521
- </tr>
522
- <tr class="method">
523
- <td> 0.18%</td>
524
- <td> 0.18%</td>
525
- <td> 0.02</td>
526
- <td> 0.02</td>
527
- <td> 0.00</td>
528
- <td> 1</td>
529
- <td><a name="Array_each_index_21277412">Array#each_index</a></td>
530
- </tr>
531
-
532
- <tr>
533
- <td>&nbsp;</td>
534
- <td>&nbsp;</td>
535
- <td> 0.00</td>
536
- <td> 0.00</td>
537
- <td> 0.00</td>
538
- <td> 500/500</td>
539
- <td><a href="#Kernel_rand_21277412">Kernel.rand</a></td>
540
- </tr>
541
- <tr>
542
- <td>&nbsp;</td>
543
- <td>&nbsp;</td>
544
- <td> 0.00</td>
545
- <td> 0.00</td>
546
- <td> 0.00</td>
547
- <td> 500/500</td>
548
- <td><a href="#Array_[]__21277412">Array#[]=</a></td>
549
- </tr>
550
-
551
- <tr class="break">
552
- <td colspan="7"></td>
553
- </tr>
554
-
555
- <tr>
556
- <td>&nbsp;</td>
557
- <td>&nbsp;</td>
558
- <td> 0.00</td>
559
- <td> 0.00</td>
560
- <td> 0.00</td>
561
- <td> 500/501</td>
562
- <td><a href="#Object_is_prime_21277412">Object#is_prime</a></td>
563
- </tr>
564
- <tr>
565
- <td>&nbsp;</td>
566
- <td>&nbsp;</td>
567
- <td> 0.00</td>
568
- <td> 0.00</td>
569
- <td> 0.00</td>
570
- <td> 1/501</td>
571
- <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td>
572
- </tr>
573
- <tr class="method">
574
- <td> 0.00%</td>
575
- <td> 0.00%</td>
576
- <td> 0.00</td>
577
- <td> 0.00</td>
578
- <td> 0.00</td>
579
- <td> 501</td>
580
- <td><a name="Fixnum_-_21277412">Fixnum#-</a></td>
581
- </tr>
582
-
583
-
584
- <tr class="break">
585
- <td colspan="7"></td>
586
- </tr>
587
-
588
- <tr>
589
- <td>&nbsp;</td>
590
- <td>&nbsp;</td>
591
- <td> 0.00</td>
592
- <td> 0.00</td>
593
- <td> 0.00</td>
594
- <td> 1/1</td>
595
- <td><a href="#Kernel_rand_21277412">Kernel.rand</a></td>
596
- </tr>
597
- <tr class="method">
598
- <td> 0.00%</td>
599
- <td> 0.00%</td>
600
- <td> 0.00</td>
601
- <td> 0.00</td>
602
- <td> 0.00</td>
603
- <td> 1</td>
604
- <td><a name="Integer_to_int_21277412">Integer#to_int</a></td>
605
- </tr>
606
-
607
-
608
- <tr class="break">
609
- <td colspan="7"></td>
610
- </tr>
611
-
612
- <tr>
613
- <td>&nbsp;</td>
614
- <td>&nbsp;</td>
615
- <td> 0.00</td>
616
- <td> 0.00</td>
617
- <td> 0.00</td>
618
- <td> 1/1</td>
619
- <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td>
620
- </tr>
621
- <tr class="method">
622
- <td> 0.00%</td>
623
- <td> 0.00%</td>
624
- <td> 0.00</td>
625
- <td> 0.00</td>
626
- <td> 0.00</td>
627
- <td> 1</td>
628
- <td><a name="Array_first_21277412">Array#first</a></td>
629
- </tr>
630
-
631
-
632
- <tr class="break">
633
- <td colspan="7"></td>
634
- </tr>
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> 1/1</td>
643
- <td><a href="#Class_new_21277412">Class#new</a></td>
644
- </tr>
645
- <tr class="method">
646
- <td> 0.00%</td>
647
- <td> 0.00%</td>
648
- <td> 0.00</td>
649
- <td> 0.00</td>
650
- <td> 0.00</td>
651
- <td> 1</td>
652
- <td><a name="Array_initialize_21277412">Array#initialize</a></td>
653
- </tr>
654
-
655
-
656
- <tr class="break">
657
- <td colspan="7"></td>
658
- </tr>
659
-
660
- <tr>
661
- <td>&nbsp;</td>
662
- <td>&nbsp;</td>
663
- <td> 0.00</td>
664
- <td> 0.00</td>
665
- <td> 0.00</td>
666
- <td> 1/1</td>
667
- <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td>
668
- </tr>
669
- <tr class="method">
670
- <td> 0.00%</td>
671
- <td> 0.00%</td>
672
- <td> 0.00</td>
673
- <td> 0.00</td>
674
- <td> 0.00</td>
675
- <td> 1</td>
676
- <td><a name="Array_length_21277412">Array#length</a></td>
677
- </tr>
678
-
679
-
680
- <tr class="break">
681
- <td colspan="7"></td>
682
- </tr>
683
-
684
- <tr>
685
- <td>&nbsp;</td>
686
- <td>&nbsp;</td>
687
- <td> 0.00</td>
688
- <td> 0.00</td>
689
- <td> 0.00</td>
690
- <td> 1/1</td>
691
- <td><a href="#Object_make_random_array_21277412">Object#make_random_array</a></td>
692
- </tr>
693
- <tr class="method">
694
- <td> 0.00%</td>
695
- <td> 0.00%</td>
696
- <td> 0.00</td>
697
- <td> 0.00</td>
698
- <td> 0.00</td>
699
- <td> 1</td>
700
- <td><a name="Class_new_21277412">Class#new</a></td>
701
- </tr>
702
-
703
- <tr>
704
- <td>&nbsp;</td>
705
- <td>&nbsp;</td>
706
- <td> 0.00</td>
707
- <td> 0.00</td>
708
- <td> 0.00</td>
709
- <td> 1/1</td>
710
- <td><a href="#Array_initialize_21277412">Array#initialize</a></td>
711
- </tr>
712
-
713
- <tr class="break">
714
- <td colspan="7"></td>
715
- </tr>
716
-
717
- <tr>
718
- <td>&nbsp;</td>
719
- <td>&nbsp;</td>
720
- <td> 0.00</td>
721
- <td> 0.00</td>
722
- <td> 0.00</td>
723
- <td> 61/61</td>
724
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
725
- </tr>
726
- <tr class="method">
727
- <td> 0.00%</td>
728
- <td> 0.00%</td>
729
- <td> 0.00</td>
730
- <td> 0.00</td>
731
- <td> 0.00</td>
732
- <td> 61</td>
733
- <td><a name="Fixnum_>_21277412">Fixnum#_</a></td>
734
- </tr>
735
-
736
-
737
- <tr class="break">
738
- <td colspan="7"></td>
739
- </tr>
740
-
741
- <tr>
742
- <td>&nbsp;</td>
743
- <td>&nbsp;</td>
744
- <td> 0.00</td>
745
- <td> 0.00</td>
746
- <td> 0.00</td>
747
- <td> 61/61</td>
748
- <td><a href="#Integer_upto_21277412">Integer#upto</a></td>
749
- </tr>
750
- <tr class="method">
751
- <td> 0.00%</td>
752
- <td> 0.00%</td>
753
- <td> 0.00</td>
754
- <td> 0.00</td>
755
- <td> 0.00</td>
756
- <td> 61</td>
757
- <td><a name="Array_[]_21277412">Array#[]</a></td>
758
- </tr>
759
-
760
-
761
- <tr class="break">
762
- <td colspan="7"></td>
763
- </tr>
764
-
765
- <tr>
766
- <td>&nbsp;</td>
767
- <td>&nbsp;</td>
768
- <td> 0.00</td>
769
- <td> 0.00</td>
770
- <td> 0.00</td>
771
- <td> 500/500</td>
772
- <td><a href="#Array_each_index_21277412">Array#each_index</a></td>
773
- </tr>
774
- <tr class="method">
775
- <td> 0.00%</td>
776
- <td> 0.00%</td>
777
- <td> 0.00</td>
778
- <td> 0.00</td>
779
- <td> 0.00</td>
780
- <td> 500</td>
781
- <td><a name="Array_[]__21277412">Array#[]=</a></td>
782
- </tr>
783
-
784
-
785
- <tr class="break">
786
- <td colspan="7"></td>
787
- </tr>
788
-
789
- <tr>
790
- <td>&nbsp;</td>
791
- <td>&nbsp;</td>
792
- <td> 0.00</td>
793
- <td> 0.00</td>
794
- <td> 0.00</td>
795
- <td> 500/500</td>
796
- <td><a href="#Array_each_index_21277412">Array#each_index</a></td>
797
- </tr>
798
- <tr class="method">
799
- <td> 0.00%</td>
800
- <td> 0.00%</td>
801
- <td> 0.00</td>
802
- <td> 0.00</td>
803
- <td> 0.00</td>
804
- <td> 500</td>
805
- <td><a name="Kernel_rand_21277412">Kernel.rand</a></td>
806
- </tr>
807
-
808
- <tr>
809
- <td>&nbsp;</td>
810
- <td>&nbsp;</td>
811
- <td> 0.00</td>
812
- <td> 0.00</td>
813
- <td> 0.00</td>
814
- <td> 1/1</td>
815
- <td><a href="#Integer_to_int_21277412">Integer#to_int</a></td>
816
- </tr>
817
-
818
- <tr class="break">
819
- <td colspan="7"></td>
820
- </tr>
821
- </table>
822
- </body>
823
- </html>