ruby-prof 0.8.2 → 0.9.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 (74) hide show
  1. data/CHANGES +23 -13
  2. data/{README → README.rdoc} +118 -111
  3. data/Rakefile +14 -26
  4. data/bin/ruby-prof +16 -4
  5. data/examples/empty.png +0 -0
  6. data/examples/graph.dot +106 -0
  7. data/examples/graph.png +0 -0
  8. data/examples/minus.png +0 -0
  9. data/examples/multi.flat.txt +23 -0
  10. data/examples/multi.graph.html +906 -0
  11. data/examples/multi.grind.dat +194 -0
  12. data/examples/multi.stack.html +573 -0
  13. data/examples/plus.png +0 -0
  14. data/examples/stack.html +573 -0
  15. data/ext/ruby_prof/extconf.rb +0 -1
  16. data/ext/ruby_prof/measure_allocations.h +6 -6
  17. data/ext/ruby_prof/measure_cpu_time.h +5 -5
  18. data/ext/ruby_prof/measure_gc_runs.h +1 -1
  19. data/ext/ruby_prof/measure_gc_time.h +1 -1
  20. data/ext/ruby_prof/measure_memory.h +4 -4
  21. data/ext/ruby_prof/measure_process_time.h +1 -1
  22. data/ext/ruby_prof/measure_wall_time.h +1 -1
  23. data/ext/ruby_prof/ruby_prof.c +240 -167
  24. data/ext/ruby_prof/ruby_prof.h +12 -10
  25. data/ext/ruby_prof/version.h +3 -3
  26. data/lib/ruby-prof.rb +7 -1
  27. data/lib/ruby-prof/abstract_printer.rb +5 -5
  28. data/lib/ruby-prof/aggregate_call_info.rb +9 -3
  29. data/lib/ruby-prof/call_info.rb +66 -1
  30. data/lib/ruby-prof/call_stack_printer.rb +751 -0
  31. data/lib/ruby-prof/call_tree_printer.rb +2 -2
  32. data/lib/ruby-prof/dot_printer.rb +151 -0
  33. data/lib/ruby-prof/empty.png +0 -0
  34. data/lib/ruby-prof/flat_printer.rb +16 -16
  35. data/lib/ruby-prof/flat_printer_with_line_numbers.rb +13 -13
  36. data/lib/ruby-prof/graph_html_printer.rb +58 -36
  37. data/lib/ruby-prof/graph_printer.rb +30 -30
  38. data/lib/ruby-prof/method_info.rb +24 -4
  39. data/lib/ruby-prof/minus.png +0 -0
  40. data/lib/ruby-prof/multi_printer.rb +54 -0
  41. data/lib/ruby-prof/plus.png +0 -0
  42. data/lib/ruby-prof/rack.rb +28 -0
  43. data/lib/ruby-prof/result.rb +70 -0
  44. data/lib/ruby-prof/symbol_to_proc.rb +1 -1
  45. data/lib/ruby-prof/task.rb +19 -19
  46. data/lib/ruby-prof/test.rb +3 -3
  47. data/lib/ruby_prof.so +0 -0
  48. data/rails/environment/profile.rb +2 -2
  49. data/rails/example/example_test.rb +2 -2
  50. data/rails/profile_test_helper.rb +1 -1
  51. data/test/aggregate_test.rb +21 -6
  52. data/test/basic_test.rb +3 -3
  53. data/test/duplicate_names_test.rb +2 -2
  54. data/test/enumerable_test.rb +2 -2
  55. data/test/exceptions_test.rb +2 -2
  56. data/test/exclude_threads_test.rb +45 -45
  57. data/test/exec_test.rb +2 -2
  58. data/test/line_number_test.rb +11 -11
  59. data/test/measurement_test.rb +4 -3
  60. data/test/method_elimination_test.rb +74 -0
  61. data/test/module_test.rb +7 -7
  62. data/test/multi_printer_test.rb +81 -0
  63. data/test/no_method_class_test.rb +2 -2
  64. data/test/prime.rb +7 -10
  65. data/test/printers_test.rb +57 -47
  66. data/test/recursive_test.rb +23 -62
  67. data/test/singleton_test.rb +3 -2
  68. data/test/stack_printer_test.rb +74 -0
  69. data/test/stack_test.rb +1 -1
  70. data/test/start_stop_test.rb +2 -2
  71. data/test/test_suite.rb +9 -0
  72. data/test/thread_test.rb +17 -17
  73. data/test/unique_call_path_test.rb +4 -4
  74. metadata +29 -8
data/Rakefile CHANGED
@@ -10,12 +10,12 @@ version_header = File.read('ext/ruby_prof/version.h')
10
10
  match = version_header.match(/RUBY_PROF_VERSION\s*["](\d.+)["]/)
11
11
  raise(RuntimeError, "Could not determine RUBY_PROF_VERSION") if not match
12
12
  RUBY_PROF_VERSION = match[1]
13
-
13
+
14
14
 
15
15
  # ------- Default Package ----------
16
16
  FILES = FileList[
17
17
  'Rakefile',
18
- 'README',
18
+ 'README.rdoc',
19
19
  'LICENSE',
20
20
  'CHANGES',
21
21
  'bin/*',
@@ -35,24 +35,24 @@ FILES = FileList[
35
35
  # Default GEM Specification
36
36
  default_spec = Gem::Specification.new do |spec|
37
37
  spec.name = "ruby-prof"
38
-
38
+
39
39
  spec.homepage = "http://rubyforge.org/projects/ruby-prof/"
40
40
  spec.summary = "Fast Ruby profiler"
41
41
  spec.description = <<-EOF
42
42
  ruby-prof is a fast code profiler for Ruby. It is a C extension and
43
43
  therefore is many times faster than the standard Ruby profiler. It
44
44
  supports both flat and graph profiles. For each method, graph profiles
45
- show how long the method ran, which methods called it and which
45
+ show how long the method ran, which methods called it and which
46
46
  methods it called. RubyProf generate both text and html and can output
47
47
  it to standard out or to a file.
48
48
  EOF
49
49
 
50
50
  spec.version = RUBY_PROF_VERSION
51
51
 
52
- spec.author = "Shugo Maeda, Charlie Savage, Roger Pack"
53
- spec.email = "shugo@ruby-lang.org, cfis@savagexi.com, rogerdpack@gmail.com"
52
+ spec.author = "Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes"
53
+ spec.email = "shugo@ruby-lang.org, cfis@savagexi.com, rogerdpack@gmail.com, skaes@railsexpress.de"
54
54
  spec.platform = Gem::Platform::RUBY
55
- spec.require_path = "lib"
55
+ spec.require_path = "lib"
56
56
  spec.bindir = "bin"
57
57
  spec.executables = ["ruby-prof"]
58
58
  spec.extensions = ["ext/ruby_prof/extconf.rb"]
@@ -63,7 +63,7 @@ EOF
63
63
  spec.rubyforge_project = 'ruby-prof'
64
64
  spec.add_development_dependency 'os'
65
65
  spec.add_development_dependency 'rake-compiler'
66
-
66
+
67
67
  end
68
68
 
69
69
 
@@ -92,7 +92,7 @@ Rake::RDocTask.new("rdoc") do |rdoc|
92
92
  # Show source inline with line numbers
93
93
  rdoc.options << "--inline-source" << "--line-numbers"
94
94
  # Make the readme file the start page for the generated html
95
- rdoc.options << '--main' << 'README'
95
+ rdoc.options << '--main' << 'README.rdoc'
96
96
  rdoc.rdoc_files.include('bin/**/*',
97
97
  'doc/*.rdoc',
98
98
  'examples/flat.txt',
@@ -102,7 +102,7 @@ Rake::RDocTask.new("rdoc") do |rdoc|
102
102
  'ext/ruby_prof/ruby_prof.c',
103
103
  'ext/ruby_prof/version.h',
104
104
  'ext/ruby_prof/measure_*.h',
105
- 'README',
105
+ 'README.rdoc',
106
106
  'LICENSE')
107
107
  end
108
108
 
@@ -120,33 +120,21 @@ require 'fileutils'
120
120
 
121
121
  desc 'Build ruby_prof.so'
122
122
  task :build do
123
- build(false)
124
- end
125
-
126
- def build(with_debug)
127
123
  Dir.chdir('ext/ruby_prof') do
128
124
  unless File.exist? 'Makefile'
129
- if with_debug
130
- system(Gem.ruby + " -d extconf.rb")
131
- else
132
- system(Gem.ruby + " extconf.rb")
133
- end
125
+ system(Gem.ruby + " extconf.rb")
134
126
  system("make clean")
135
127
  end
136
128
  system("make")
137
- FileUtils.cp 'ruby_prof.so', '../../lib'
129
+ FileUtils.cp 'ruby_prof.so', '../../lib' if File.exist? 'lib/ruby_prof.so'
130
+ FileUtils.cp 'ruby_prof.bundle', '../../lib' if File.exist? 'lib/ruby_prof.bundle'
138
131
  end
139
132
  end
140
133
 
141
- desc 'build ruby_prof.so with (rather verbose) debugging enabled'
142
-
143
- task :build_debug do
144
- build(true)
145
- end
146
-
147
134
  desc 'clean stuff'
148
135
  task :cleanr do
149
136
  FileUtils.rm 'lib/ruby_prof.so' if File.exist? 'lib/ruby_prof.so'
137
+ FileUtils.rm 'lib/ruby_prof.bundle' if File.exist? 'lib/ruby_prof.bundle'
150
138
  Dir.chdir('ext/ruby_prof') do
151
139
  if File.exist? 'Makefile'
152
140
  system("make clean")
@@ -15,6 +15,8 @@
15
15
  # graph - Prints a graph profile as text.
16
16
  # graph_html - Prints a graph profile as html.
17
17
  # call_tree - format for KCacheGrind
18
+ # call_stack - prints a HTML visualization of the call tree
19
+ # dot - Prints a graph profile as a dot file
18
20
  # -f, --file=path Output results to a file instead of standard out.
19
21
  # -m, --min_percent=min_percent The minimum percent a method must take before ',
20
22
  # being included in output reports. Should be an
@@ -63,13 +65,15 @@ opts = OptionParser.new do |opts|
63
65
  opts.separator "Options:"
64
66
 
65
67
 
66
- opts.on('-p printer', '--printer=printer', [:flat, :flat_with_line_numbers, :graph, :graph_html, :call_tree],
68
+ opts.on('-p printer', '--printer=printer', [:flat, :flat_with_line_numbers, :graph, :graph_html, :call_tree, :call_stack, :dot],
67
69
  'Select a printer:',
68
70
  ' flat - Prints a flat profile as text (default).',
69
71
  ' flat_with_line_numbers - same as flat, with line numbers.',
70
72
  ' graph - Prints a graph profile as text.',
71
73
  ' graph_html - Prints a graph profile as html.',
72
- ' call_tree - format for KCacheGrind'
74
+ ' call_tree - format for KCacheGrind',
75
+ ' call_stack - prints a HTML visualization of the call tree',
76
+ ' dot - Prints a graph profile as a dot file'
73
77
  ) do |printer|
74
78
 
75
79
 
@@ -84,6 +88,10 @@ opts = OptionParser.new do |opts|
84
88
  options.printer = RubyProf::GraphHtmlPrinter
85
89
  when :call_tree
86
90
  options.printer = RubyProf::CallTreePrinter
91
+ when :call_stack
92
+ options.printer = RubyProf::CallStackPrinter
93
+ when :dot
94
+ options.printer = RubyProf::DotPrinter
87
95
  end
88
96
  end
89
97
 
@@ -97,6 +105,7 @@ opts = OptionParser.new do |opts|
97
105
  opts.on('-f path', '--file=path',
98
106
  'Output results to a file instead of standard out.') do |file|
99
107
  options.file = file
108
+ options.old_wd = Dir.pwd
100
109
  end
101
110
 
102
111
  opts.on('--mode=measure_mode',
@@ -191,8 +200,11 @@ at_exit {
191
200
 
192
201
  # Get output
193
202
  if options.file
194
- File.open(options.file, 'w') do |file|
195
- printer.print(file, {:min_percent => options.min_percent})
203
+ # write it relative to the dir they *started* in, as it's a bit surprising to write it in the dir they end up in.
204
+ Dir.chdir(options.old_wd) do
205
+ File.open(options.file, 'w') do |file|
206
+ printer.print(file, {:min_percent => options.min_percent})
207
+ end
196
208
  end
197
209
  else
198
210
  # Print out results
Binary file
@@ -0,0 +1,106 @@
1
+ digraph "Profile" {
2
+ label="WALL_TIME >=0%\nTotal: 1.382985";
3
+ labelloc=t;
4
+ labeljust=l;
5
+ subgraph "Thread 2148237740" {
6
+ 2159427600 [label="[]=\n(0%)"];
7
+ 2159427680 [label="%\n(15%)"];
8
+ 2159427760 [label="run_primes\n(100%)"];
9
+ 2159427760 -> 2159428600 [label="2/2" fontsize=10 fontcolor="#666666"];
10
+ 2159427760 -> 2159428300 [label="2/2" fontsize=10 fontcolor="#666666"];
11
+ 2159427840 [label="new\n(0%)"];
12
+ 2159427840 -> 2159428080 [label="2/2" fontsize=10 fontcolor="#666666"];
13
+ 2159427840 -> 2159428760 [label="2/2" fontsize=10 fontcolor="#666666"];
14
+ 2159427920 [label="rand\n(0%)"];
15
+ 2159428000 [label="-\n(0%)"];
16
+ 2159428080 [label="initialize\n(0%)"];
17
+ 2159428160 [label="each_index\n(1%)"];
18
+ 2159428160 -> 2159427920 [label="20000/20000" fontsize=10 fontcolor="#666666"];
19
+ 2159428160 -> 2159427600 [label="20000/20000" fontsize=10 fontcolor="#666666"];
20
+ 2159428220 [label="go\n(49%)"];
21
+ 2159428220 -> 2159427760 [label="1/2" fontsize=10 fontcolor="#666666"];
22
+ 2159428300 [label="make_random_array\n(1%)"];
23
+ 2159428300 -> 2159428160 [label="2/2" fontsize=10 fontcolor="#666666"];
24
+ 2159428300 -> 2159427840 [label="2/2" fontsize=10 fontcolor="#666666"];
25
+ 2159428360 [label="setup\n(100%)"];
26
+ 2159428360 -> 2159427760 [label="1/2" fontsize=10 fontcolor="#666666"];
27
+ 2159428360 -> 2159428220 [label="1/1" fontsize=10 fontcolor="#666666"];
28
+ 2159428440 [label="select\n(99%)"];
29
+ 2159428440 -> 2159428520 [label="20000/20000" fontsize=10 fontcolor="#666666"];
30
+ 2159428520 [label="is_prime\n(98%)"];
31
+ 2159428520 -> 2159428680 [label="20000/20000" fontsize=10 fontcolor="#666666"];
32
+ 2159428520 -> 2159428000 [label="20000/20000" fontsize=10 fontcolor="#666666"];
33
+ 2159428600 [label="find_primes\n(99%)"];
34
+ 2159428600 -> 2159428440 [label="2/2" fontsize=10 fontcolor="#666666"];
35
+ 2159428680 [label="upto\n(97%)"];
36
+ 2159428680 -> 2159427680 [label="1562487/1562487" fontsize=10 fontcolor="#666666"];
37
+ 2159428680 -> 2159428920 [label="1562487/1562487" fontsize=10 fontcolor="#666666"];
38
+ 2159428760 [label="allocate\n(0%)"];
39
+ 2159428920 [label="==\n(12%)"];
40
+ }
41
+ subgraph cluster_2159103200 {
42
+ label = "Object";
43
+ fontcolor = "#666666";
44
+ fontsize = 16;
45
+ color = "#666666";
46
+ 2159428600;
47
+ 2159428520;
48
+ 2159428300;
49
+ 2159427760;
50
+ }
51
+ subgraph cluster_2159103260 {
52
+ label = "Integer";
53
+ fontcolor = "#666666";
54
+ fontsize = 16;
55
+ color = "#666666";
56
+ 2159428680;
57
+ }
58
+ subgraph cluster_2159103060 {
59
+ label = "PrintersTest";
60
+ fontcolor = "#666666";
61
+ fontsize = 16;
62
+ color = "#666666";
63
+ 2159428360;
64
+ 2159428220;
65
+ }
66
+ subgraph cluster_2159103120 {
67
+ label = "Array";
68
+ fontcolor = "#666666";
69
+ fontsize = 16;
70
+ color = "#666666";
71
+ 2159428440;
72
+ 2159428160;
73
+ 2159428080;
74
+ 2159427600;
75
+ }
76
+ subgraph cluster_2159103340 {
77
+ label = "<Class::Array>";
78
+ fontcolor = "#666666";
79
+ fontsize = 16;
80
+ color = "#666666";
81
+ 2159428760;
82
+ }
83
+ subgraph cluster_2159102840 {
84
+ label = "Class";
85
+ fontcolor = "#666666";
86
+ fontsize = 16;
87
+ color = "#666666";
88
+ 2159427840;
89
+ }
90
+ subgraph cluster_2159102980 {
91
+ label = "Kernel";
92
+ fontcolor = "#666666";
93
+ fontsize = 16;
94
+ color = "#666666";
95
+ 2159427920;
96
+ }
97
+ subgraph cluster_2159103400 {
98
+ label = "Fixnum";
99
+ fontcolor = "#666666";
100
+ fontsize = 16;
101
+ color = "#666666";
102
+ 2159428920;
103
+ 2159428000;
104
+ 2159427680;
105
+ }
106
+ }
Binary file
Binary file
@@ -0,0 +1,23 @@
1
+ Thread ID: 2148387240
2
+ Total: 1.412370
3
+
4
+ %self total self wait child calls name
5
+ 71.15 1.37 1.00 0.00 0.37 20000 Integer#upto
6
+ 14.16 0.20 0.20 0.00 0.00 1544726 Fixnum#%
7
+ 11.93 0.17 0.17 0.00 0.00 1544726 Fixnum#==
8
+ 0.98 1.39 0.01 0.00 1.38 20000 Object#is_prime
9
+ 0.62 0.01 0.01 0.00 0.01 2 Array#each_index
10
+ 0.58 1.40 0.01 0.00 1.39 2 Array#select
11
+ 0.23 0.00 0.00 0.00 0.00 20000 Kernel#rand
12
+ 0.19 0.00 0.00 0.00 0.00 20000 Array#[]=
13
+ 0.17 0.00 0.00 0.00 0.00 20000 Fixnum#-
14
+ 0.01 0.00 0.00 0.00 0.00 2 Array#initialize
15
+ 0.00 0.01 0.00 0.00 0.01 2 Object#make_random_array
16
+ 0.00 1.41 0.00 0.00 1.41 2 Object#run_primes
17
+ 0.00 0.00 0.00 0.00 0.00 2 Class#new
18
+ 0.00 1.41 0.00 0.00 1.41 1 PrintersTest#setup
19
+ 0.00 0.71 0.00 0.00 0.71 1 PrintersTest#go
20
+ 0.00 1.40 0.00 0.00 1.40 2 Object#find_primes
21
+ 0.00 0.00 0.00 0.00 0.00 2 <Class::Array>#allocate
22
+
23
+
@@ -0,0 +1,906 @@
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
+ </style>
52
+ </head>
53
+ <body>
54
+ <h1>Profile Report</h1>
55
+ <!-- Threads Table -->
56
+ <table>
57
+ <tr>
58
+ <th>Thread ID</th>
59
+ <th>Total Time</th>
60
+ </tr>
61
+
62
+ <tr>
63
+ <td><a href="#2148387240">2148387240</a></td>
64
+ <td>1.41237</td>
65
+ </tr>
66
+
67
+ </table>
68
+
69
+ <!-- Methods Tables -->
70
+
71
+ <h2><a name="2148387240">Thread 2148387240</a></h2>
72
+
73
+ <table>
74
+ <tr>
75
+ <th> %Total</th>
76
+ <th> %Self</th>
77
+ <th> Total</th>
78
+ <th> Self</th>
79
+ <th> Wait</th>
80
+ <th> Child</th>
81
+ <th> Calls</th>
82
+ <th class="method_name">Name</th>
83
+ <th>Line</th>
84
+ </tr>
85
+
86
+
87
+
88
+ <!-- Parents -->
89
+
90
+
91
+ <tr class="method">
92
+ <td> 100.00%</td>
93
+ <td> 0.00%</td>
94
+ <td> 1.41</td>
95
+ <td> 0.00</td>
96
+ <td> 0.00</td>
97
+ <td> 1.41</td>
98
+ <td> 1</td>
99
+ <td class="method_name"><a name="PrintersTest_setup_2148387240">PrintersTest#setup</a></td>
100
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=16" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:16">16</a></td>
101
+ </tr>
102
+
103
+ <!-- Children -->
104
+
105
+
106
+ <tr>
107
+ <td>&nbsp;</td>
108
+ <td>&nbsp;</td>
109
+ <td> 0.71</td>
110
+ <td> 0.00</td>
111
+ <td> 0.00</td>
112
+ <td> 0.71</td>
113
+
114
+ <td> 1/1</td>
115
+ <td class="method_name"><a href="#PrintersTest_go_2148387240">PrintersTest#go</a></td>
116
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=17" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:17">17</a></td>
117
+ </tr>
118
+
119
+
120
+ <tr>
121
+ <td>&nbsp;</td>
122
+ <td>&nbsp;</td>
123
+ <td> 0.70</td>
124
+ <td> 0.00</td>
125
+ <td> 0.00</td>
126
+ <td> 0.70</td>
127
+
128
+ <td> 1/2</td>
129
+ <td class="method_name"><a href="#Object_run_primes_2148387240">Object#run_primes</a></td>
130
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=16" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:16">16</a></td>
131
+ </tr>
132
+
133
+ <!-- Create divider row -->
134
+ <tr class="break"><td colspan="9"></td></tr>
135
+
136
+
137
+ <!-- Parents -->
138
+
139
+ <tr>
140
+ <td>&nbsp;</td>
141
+ <td>&nbsp;</td>
142
+ <td> 0.70</td>
143
+ <td> 0.00</td>
144
+ <td> 0.00</td>
145
+ <td> 0.70</td>
146
+
147
+ <td> 1/2</td>
148
+ <td class="method_name"><a href="#PrintersTest_setup_2148387240">PrintersTest#setup</a></td>
149
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=16" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:16">16</a></td>
150
+ </tr>
151
+
152
+ <tr>
153
+ <td>&nbsp;</td>
154
+ <td>&nbsp;</td>
155
+ <td> 0.71</td>
156
+ <td> 0.00</td>
157
+ <td> 0.00</td>
158
+ <td> 0.71</td>
159
+
160
+ <td> 1/2</td>
161
+ <td class="method_name"><a href="#PrintersTest_go_2148387240">PrintersTest#go</a></td>
162
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=10" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:10">10</a></td>
163
+ </tr>
164
+
165
+
166
+ <tr class="method">
167
+ <td> 100.00%</td>
168
+ <td> 0.00%</td>
169
+ <td> 1.41</td>
170
+ <td> 0.00</td>
171
+ <td> 0.00</td>
172
+ <td> 1.41</td>
173
+ <td> 2</td>
174
+ <td class="method_name"><a name="Object_run_primes_2148387240">Object#run_primes</a></td>
175
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=46" title="/Users/skaes/src/ruby-prof/test/prime.rb:46">46</a></td>
176
+ </tr>
177
+
178
+ <!-- Children -->
179
+
180
+
181
+ <tr>
182
+ <td>&nbsp;</td>
183
+ <td>&nbsp;</td>
184
+ <td> 1.40</td>
185
+ <td> 0.00</td>
186
+ <td> 0.00</td>
187
+ <td> 1.40</td>
188
+
189
+ <td> 2/2</td>
190
+ <td class="method_name"><a href="#Object_find_primes_2148387240">Object#find_primes</a></td>
191
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=51" title="/Users/skaes/src/ruby-prof/test/prime.rb:51">51</a></td>
192
+ </tr>
193
+
194
+
195
+ <tr>
196
+ <td>&nbsp;</td>
197
+ <td>&nbsp;</td>
198
+ <td> 0.01</td>
199
+ <td> 0.00</td>
200
+ <td> 0.00</td>
201
+ <td> 0.01</td>
202
+
203
+ <td> 2/2</td>
204
+ <td class="method_name"><a href="#Object_make_random_array_2148387240">Object#make_random_array</a></td>
205
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=48" title="/Users/skaes/src/ruby-prof/test/prime.rb:48">48</a></td>
206
+ </tr>
207
+
208
+ <!-- Create divider row -->
209
+ <tr class="break"><td colspan="9"></td></tr>
210
+
211
+
212
+ <!-- Parents -->
213
+
214
+ <tr>
215
+ <td>&nbsp;</td>
216
+ <td>&nbsp;</td>
217
+ <td> 1.40</td>
218
+ <td> 0.00</td>
219
+ <td> 0.00</td>
220
+ <td> 1.40</td>
221
+
222
+ <td> 2/2</td>
223
+ <td class="method_name"><a href="#Object_run_primes_2148387240">Object#run_primes</a></td>
224
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=51" title="/Users/skaes/src/ruby-prof/test/prime.rb:51">51</a></td>
225
+ </tr>
226
+
227
+
228
+ <tr class="method">
229
+ <td> 98.95%</td>
230
+ <td> 0.00%</td>
231
+ <td> 1.40</td>
232
+ <td> 0.00</td>
233
+ <td> 0.00</td>
234
+ <td> 1.40</td>
235
+ <td> 2</td>
236
+ <td class="method_name"><a name="Object_find_primes_2148387240">Object#find_primes</a></td>
237
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=24" title="/Users/skaes/src/ruby-prof/test/prime.rb:24">24</a></td>
238
+ </tr>
239
+
240
+ <!-- Children -->
241
+
242
+
243
+ <tr>
244
+ <td>&nbsp;</td>
245
+ <td>&nbsp;</td>
246
+ <td> 1.40</td>
247
+ <td> 0.01</td>
248
+ <td> 0.00</td>
249
+ <td> 1.39</td>
250
+
251
+ <td> 2/2</td>
252
+ <td class="method_name"><a href="#Array_select_2148387240">Array#select</a></td>
253
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=25" title="/Users/skaes/src/ruby-prof/test/prime.rb:25">25</a></td>
254
+ </tr>
255
+
256
+ <!-- Create divider row -->
257
+ <tr class="break"><td colspan="9"></td></tr>
258
+
259
+
260
+ <!-- Parents -->
261
+
262
+ <tr>
263
+ <td>&nbsp;</td>
264
+ <td>&nbsp;</td>
265
+ <td> 1.40</td>
266
+ <td> 0.01</td>
267
+ <td> 0.00</td>
268
+ <td> 1.39</td>
269
+
270
+ <td> 2/2</td>
271
+ <td class="method_name"><a href="#Object_find_primes_2148387240">Object#find_primes</a></td>
272
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=25" title="/Users/skaes/src/ruby-prof/test/prime.rb:25">25</a></td>
273
+ </tr>
274
+
275
+
276
+ <tr class="method">
277
+ <td> 98.95%</td>
278
+ <td> 0.58%</td>
279
+ <td> 1.40</td>
280
+ <td> 0.01</td>
281
+ <td> 0.00</td>
282
+ <td> 1.39</td>
283
+ <td> 2</td>
284
+ <td class="method_name"><a name="Array_select_2148387240">Array#select</a></td>
285
+ <td></td>
286
+ </tr>
287
+
288
+ <!-- Children -->
289
+
290
+
291
+ <tr>
292
+ <td>&nbsp;</td>
293
+ <td>&nbsp;</td>
294
+ <td> 1.39</td>
295
+ <td> 0.01</td>
296
+ <td> 0.00</td>
297
+ <td> 1.38</td>
298
+
299
+ <td> 20000/20000</td>
300
+ <td class="method_name"><a href="#Object_is_prime_2148387240">Object#is_prime</a></td>
301
+ <td></td>
302
+ </tr>
303
+
304
+ <!-- Create divider row -->
305
+ <tr class="break"><td colspan="9"></td></tr>
306
+
307
+
308
+ <!-- Parents -->
309
+
310
+ <tr>
311
+ <td>&nbsp;</td>
312
+ <td>&nbsp;</td>
313
+ <td> 1.39</td>
314
+ <td> 0.01</td>
315
+ <td> 0.00</td>
316
+ <td> 1.38</td>
317
+
318
+ <td> 20000/20000</td>
319
+ <td class="method_name"><a href="#Array_select_2148387240">Array#select</a></td>
320
+ <td></td>
321
+ </tr>
322
+
323
+
324
+ <tr class="method">
325
+ <td> 98.37%</td>
326
+ <td> 0.98%</td>
327
+ <td> 1.39</td>
328
+ <td> 0.01</td>
329
+ <td> 0.00</td>
330
+ <td> 1.38</td>
331
+ <td> 20000</td>
332
+ <td class="method_name"><a name="Object_is_prime_2148387240">Object#is_prime</a></td>
333
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=16" title="/Users/skaes/src/ruby-prof/test/prime.rb:16">16</a></td>
334
+ </tr>
335
+
336
+ <!-- Children -->
337
+
338
+
339
+ <tr>
340
+ <td>&nbsp;</td>
341
+ <td>&nbsp;</td>
342
+ <td> 1.37</td>
343
+ <td> 1.00</td>
344
+ <td> 0.00</td>
345
+ <td> 0.37</td>
346
+
347
+ <td> 20000/20000</td>
348
+ <td class="method_name"><a href="#Integer_upto_2148387240">Integer#upto</a></td>
349
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/skaes/src/ruby-prof/test/prime.rb:18">18</a></td>
350
+ </tr>
351
+
352
+
353
+ <tr>
354
+ <td>&nbsp;</td>
355
+ <td>&nbsp;</td>
356
+ <td> 0.00</td>
357
+ <td> 0.00</td>
358
+ <td> 0.00</td>
359
+ <td> 0.00</td>
360
+
361
+ <td> 20000/20000</td>
362
+ <td class="method_name"><a href="#Fixnum_-_2148387240">Fixnum#-</a></td>
363
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/skaes/src/ruby-prof/test/prime.rb:18">18</a></td>
364
+ </tr>
365
+
366
+ <!-- Create divider row -->
367
+ <tr class="break"><td colspan="9"></td></tr>
368
+
369
+
370
+ <!-- Parents -->
371
+
372
+ <tr>
373
+ <td>&nbsp;</td>
374
+ <td>&nbsp;</td>
375
+ <td> 1.37</td>
376
+ <td> 1.00</td>
377
+ <td> 0.00</td>
378
+ <td> 0.37</td>
379
+
380
+ <td> 20000/20000</td>
381
+ <td class="method_name"><a href="#Object_is_prime_2148387240">Object#is_prime</a></td>
382
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/skaes/src/ruby-prof/test/prime.rb:18">18</a></td>
383
+ </tr>
384
+
385
+
386
+ <tr class="method">
387
+ <td> 97.23%</td>
388
+ <td> 71.15%</td>
389
+ <td> 1.37</td>
390
+ <td> 1.00</td>
391
+ <td> 0.00</td>
392
+ <td> 0.37</td>
393
+ <td> 20000</td>
394
+ <td class="method_name"><a name="Integer_upto_2148387240">Integer#upto</a></td>
395
+ <td></td>
396
+ </tr>
397
+
398
+ <!-- Children -->
399
+
400
+
401
+ <tr>
402
+ <td>&nbsp;</td>
403
+ <td>&nbsp;</td>
404
+ <td> 0.20</td>
405
+ <td> 0.20</td>
406
+ <td> 0.00</td>
407
+ <td> 0.00</td>
408
+
409
+ <td> 1544726/1544726</td>
410
+ <td class="method_name"><a href="#Fixnum_%_2148387240">Fixnum#%</a></td>
411
+ <td></td>
412
+ </tr>
413
+
414
+
415
+ <tr>
416
+ <td>&nbsp;</td>
417
+ <td>&nbsp;</td>
418
+ <td> 0.17</td>
419
+ <td> 0.17</td>
420
+ <td> 0.00</td>
421
+ <td> 0.00</td>
422
+
423
+ <td> 1544726/1544726</td>
424
+ <td class="method_name"><a href="#Fixnum____2148387240">Fixnum#==</a></td>
425
+ <td></td>
426
+ </tr>
427
+
428
+ <!-- Create divider row -->
429
+ <tr class="break"><td colspan="9"></td></tr>
430
+
431
+
432
+ <!-- Parents -->
433
+
434
+ <tr>
435
+ <td>&nbsp;</td>
436
+ <td>&nbsp;</td>
437
+ <td> 0.71</td>
438
+ <td> 0.00</td>
439
+ <td> 0.00</td>
440
+ <td> 0.71</td>
441
+
442
+ <td> 1/1</td>
443
+ <td class="method_name"><a href="#PrintersTest_setup_2148387240">PrintersTest#setup</a></td>
444
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=17" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:17">17</a></td>
445
+ </tr>
446
+
447
+
448
+ <tr class="method">
449
+ <td> 50.24%</td>
450
+ <td> 0.00%</td>
451
+ <td> 0.71</td>
452
+ <td> 0.00</td>
453
+ <td> 0.00</td>
454
+ <td> 0.71</td>
455
+ <td> 1</td>
456
+ <td class="method_name"><a name="PrintersTest_go_2148387240">PrintersTest#go</a></td>
457
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=9" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:9">9</a></td>
458
+ </tr>
459
+
460
+ <!-- Children -->
461
+
462
+
463
+ <tr>
464
+ <td>&nbsp;</td>
465
+ <td>&nbsp;</td>
466
+ <td> 0.71</td>
467
+ <td> 0.00</td>
468
+ <td> 0.00</td>
469
+ <td> 0.71</td>
470
+
471
+ <td> 1/2</td>
472
+ <td class="method_name"><a href="#Object_run_primes_2148387240">Object#run_primes</a></td>
473
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/printers_test.rb&line=10" title="/Users/skaes/src/ruby-prof/test/printers_test.rb:10">10</a></td>
474
+ </tr>
475
+
476
+ <!-- Create divider row -->
477
+ <tr class="break"><td colspan="9"></td></tr>
478
+
479
+
480
+ <!-- Parents -->
481
+
482
+ <tr>
483
+ <td>&nbsp;</td>
484
+ <td>&nbsp;</td>
485
+ <td> 0.20</td>
486
+ <td> 0.20</td>
487
+ <td> 0.00</td>
488
+ <td> 0.00</td>
489
+
490
+ <td> 1544726/1544726</td>
491
+ <td class="method_name"><a href="#Integer_upto_2148387240">Integer#upto</a></td>
492
+ <td></td>
493
+ </tr>
494
+
495
+
496
+ <tr class="method">
497
+ <td> 14.16%</td>
498
+ <td> 14.16%</td>
499
+ <td> 0.20</td>
500
+ <td> 0.20</td>
501
+ <td> 0.00</td>
502
+ <td> 0.00</td>
503
+ <td> 1544726</td>
504
+ <td class="method_name"><a name="Fixnum_%_2148387240">Fixnum#%</a></td>
505
+ <td></td>
506
+ </tr>
507
+
508
+ <!-- Children -->
509
+
510
+ <!-- Create divider row -->
511
+ <tr class="break"><td colspan="9"></td></tr>
512
+
513
+
514
+ <!-- Parents -->
515
+
516
+ <tr>
517
+ <td>&nbsp;</td>
518
+ <td>&nbsp;</td>
519
+ <td> 0.17</td>
520
+ <td> 0.17</td>
521
+ <td> 0.00</td>
522
+ <td> 0.00</td>
523
+
524
+ <td> 1544726/1544726</td>
525
+ <td class="method_name"><a href="#Integer_upto_2148387240">Integer#upto</a></td>
526
+ <td></td>
527
+ </tr>
528
+
529
+
530
+ <tr class="method">
531
+ <td> 11.93%</td>
532
+ <td> 11.93%</td>
533
+ <td> 0.17</td>
534
+ <td> 0.17</td>
535
+ <td> 0.00</td>
536
+ <td> 0.00</td>
537
+ <td> 1544726</td>
538
+ <td class="method_name"><a name="Fixnum____2148387240">Fixnum#==</a></td>
539
+ <td></td>
540
+ </tr>
541
+
542
+ <!-- Children -->
543
+
544
+ <!-- Create divider row -->
545
+ <tr class="break"><td colspan="9"></td></tr>
546
+
547
+
548
+ <!-- Parents -->
549
+
550
+ <tr>
551
+ <td>&nbsp;</td>
552
+ <td>&nbsp;</td>
553
+ <td> 0.01</td>
554
+ <td> 0.00</td>
555
+ <td> 0.00</td>
556
+ <td> 0.01</td>
557
+
558
+ <td> 2/2</td>
559
+ <td class="method_name"><a href="#Object_run_primes_2148387240">Object#run_primes</a></td>
560
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=48" title="/Users/skaes/src/ruby-prof/test/prime.rb:48">48</a></td>
561
+ </tr>
562
+
563
+
564
+ <tr class="method">
565
+ <td> 1.05%</td>
566
+ <td> 0.00%</td>
567
+ <td> 0.01</td>
568
+ <td> 0.00</td>
569
+ <td> 0.00</td>
570
+ <td> 0.01</td>
571
+ <td> 2</td>
572
+ <td class="method_name"><a name="Object_make_random_array_2148387240">Object#make_random_array</a></td>
573
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=7" title="/Users/skaes/src/ruby-prof/test/prime.rb:7">7</a></td>
574
+ </tr>
575
+
576
+ <!-- Children -->
577
+
578
+
579
+ <tr>
580
+ <td>&nbsp;</td>
581
+ <td>&nbsp;</td>
582
+ <td> 0.01</td>
583
+ <td> 0.01</td>
584
+ <td> 0.00</td>
585
+ <td> 0.01</td>
586
+
587
+ <td> 2/2</td>
588
+ <td class="method_name"><a href="#Array_each_index_2148387240">Array#each_index</a></td>
589
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=9" title="/Users/skaes/src/ruby-prof/test/prime.rb:9">9</a></td>
590
+ </tr>
591
+
592
+
593
+ <tr>
594
+ <td>&nbsp;</td>
595
+ <td>&nbsp;</td>
596
+ <td> 0.00</td>
597
+ <td> 0.00</td>
598
+ <td> 0.00</td>
599
+ <td> 0.00</td>
600
+
601
+ <td> 2/2</td>
602
+ <td class="method_name"><a href="#Class_new_2148387240">Class#new</a></td>
603
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=8" title="/Users/skaes/src/ruby-prof/test/prime.rb:8">8</a></td>
604
+ </tr>
605
+
606
+ <!-- Create divider row -->
607
+ <tr class="break"><td colspan="9"></td></tr>
608
+
609
+
610
+ <!-- Parents -->
611
+
612
+ <tr>
613
+ <td>&nbsp;</td>
614
+ <td>&nbsp;</td>
615
+ <td> 0.01</td>
616
+ <td> 0.01</td>
617
+ <td> 0.00</td>
618
+ <td> 0.01</td>
619
+
620
+ <td> 2/2</td>
621
+ <td class="method_name"><a href="#Object_make_random_array_2148387240">Object#make_random_array</a></td>
622
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=9" title="/Users/skaes/src/ruby-prof/test/prime.rb:9">9</a></td>
623
+ </tr>
624
+
625
+
626
+ <tr class="method">
627
+ <td> 1.04%</td>
628
+ <td> 0.62%</td>
629
+ <td> 0.01</td>
630
+ <td> 0.01</td>
631
+ <td> 0.00</td>
632
+ <td> 0.01</td>
633
+ <td> 2</td>
634
+ <td class="method_name"><a name="Array_each_index_2148387240">Array#each_index</a></td>
635
+ <td></td>
636
+ </tr>
637
+
638
+ <!-- Children -->
639
+
640
+
641
+ <tr>
642
+ <td>&nbsp;</td>
643
+ <td>&nbsp;</td>
644
+ <td> 0.00</td>
645
+ <td> 0.00</td>
646
+ <td> 0.00</td>
647
+ <td> 0.00</td>
648
+
649
+ <td> 20000/20000</td>
650
+ <td class="method_name"><a href="#Kernel_rand_2148387240">Kernel#rand</a></td>
651
+ <td></td>
652
+ </tr>
653
+
654
+
655
+ <tr>
656
+ <td>&nbsp;</td>
657
+ <td>&nbsp;</td>
658
+ <td> 0.00</td>
659
+ <td> 0.00</td>
660
+ <td> 0.00</td>
661
+ <td> 0.00</td>
662
+
663
+ <td> 20000/20000</td>
664
+ <td class="method_name"><a href="#Array_[]__2148387240">Array#[]=</a></td>
665
+ <td></td>
666
+ </tr>
667
+
668
+ <!-- Create divider row -->
669
+ <tr class="break"><td colspan="9"></td></tr>
670
+
671
+
672
+ <!-- Parents -->
673
+
674
+ <tr>
675
+ <td>&nbsp;</td>
676
+ <td>&nbsp;</td>
677
+ <td> 0.00</td>
678
+ <td> 0.00</td>
679
+ <td> 0.00</td>
680
+ <td> 0.00</td>
681
+
682
+ <td> 20000/20000</td>
683
+ <td class="method_name"><a href="#Array_each_index_2148387240">Array#each_index</a></td>
684
+ <td></td>
685
+ </tr>
686
+
687
+
688
+ <tr class="method">
689
+ <td> 0.23%</td>
690
+ <td> 0.23%</td>
691
+ <td> 0.00</td>
692
+ <td> 0.00</td>
693
+ <td> 0.00</td>
694
+ <td> 0.00</td>
695
+ <td> 20000</td>
696
+ <td class="method_name"><a name="Kernel_rand_2148387240">Kernel#rand</a></td>
697
+ <td></td>
698
+ </tr>
699
+
700
+ <!-- Children -->
701
+
702
+ <!-- Create divider row -->
703
+ <tr class="break"><td colspan="9"></td></tr>
704
+
705
+
706
+ <!-- Parents -->
707
+
708
+ <tr>
709
+ <td>&nbsp;</td>
710
+ <td>&nbsp;</td>
711
+ <td> 0.00</td>
712
+ <td> 0.00</td>
713
+ <td> 0.00</td>
714
+ <td> 0.00</td>
715
+
716
+ <td> 20000/20000</td>
717
+ <td class="method_name"><a href="#Array_each_index_2148387240">Array#each_index</a></td>
718
+ <td></td>
719
+ </tr>
720
+
721
+
722
+ <tr class="method">
723
+ <td> 0.19%</td>
724
+ <td> 0.19%</td>
725
+ <td> 0.00</td>
726
+ <td> 0.00</td>
727
+ <td> 0.00</td>
728
+ <td> 0.00</td>
729
+ <td> 20000</td>
730
+ <td class="method_name"><a name="Array_[]__2148387240">Array#[]=</a></td>
731
+ <td></td>
732
+ </tr>
733
+
734
+ <!-- Children -->
735
+
736
+ <!-- Create divider row -->
737
+ <tr class="break"><td colspan="9"></td></tr>
738
+
739
+
740
+ <!-- Parents -->
741
+
742
+ <tr>
743
+ <td>&nbsp;</td>
744
+ <td>&nbsp;</td>
745
+ <td> 0.00</td>
746
+ <td> 0.00</td>
747
+ <td> 0.00</td>
748
+ <td> 0.00</td>
749
+
750
+ <td> 20000/20000</td>
751
+ <td class="method_name"><a href="#Object_is_prime_2148387240">Object#is_prime</a></td>
752
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=18" title="/Users/skaes/src/ruby-prof/test/prime.rb:18">18</a></td>
753
+ </tr>
754
+
755
+
756
+ <tr class="method">
757
+ <td> 0.17%</td>
758
+ <td> 0.17%</td>
759
+ <td> 0.00</td>
760
+ <td> 0.00</td>
761
+ <td> 0.00</td>
762
+ <td> 0.00</td>
763
+ <td> 20000</td>
764
+ <td class="method_name"><a name="Fixnum_-_2148387240">Fixnum#-</a></td>
765
+ <td></td>
766
+ </tr>
767
+
768
+ <!-- Children -->
769
+
770
+ <!-- Create divider row -->
771
+ <tr class="break"><td colspan="9"></td></tr>
772
+
773
+
774
+ <!-- Parents -->
775
+
776
+ <tr>
777
+ <td>&nbsp;</td>
778
+ <td>&nbsp;</td>
779
+ <td> 0.00</td>
780
+ <td> 0.00</td>
781
+ <td> 0.00</td>
782
+ <td> 0.00</td>
783
+
784
+ <td> 2/2</td>
785
+ <td class="method_name"><a href="#Object_make_random_array_2148387240">Object#make_random_array</a></td>
786
+ <td><a href="txmt://open?url=file:///Users/skaes/src/ruby-prof/test/prime.rb&line=8" title="/Users/skaes/src/ruby-prof/test/prime.rb:8">8</a></td>
787
+ </tr>
788
+
789
+
790
+ <tr class="method">
791
+ <td> 0.01%</td>
792
+ <td> 0.00%</td>
793
+ <td> 0.00</td>
794
+ <td> 0.00</td>
795
+ <td> 0.00</td>
796
+ <td> 0.00</td>
797
+ <td> 2</td>
798
+ <td class="method_name"><a name="Class_new_2148387240">Class#new</a></td>
799
+ <td></td>
800
+ </tr>
801
+
802
+ <!-- Children -->
803
+
804
+
805
+ <tr>
806
+ <td>&nbsp;</td>
807
+ <td>&nbsp;</td>
808
+ <td> 0.00</td>
809
+ <td> 0.00</td>
810
+ <td> 0.00</td>
811
+ <td> 0.00</td>
812
+
813
+ <td> 2/2</td>
814
+ <td class="method_name"><a href="#Array_initialize_2148387240">Array#initialize</a></td>
815
+ <td></td>
816
+ </tr>
817
+
818
+
819
+ <tr>
820
+ <td>&nbsp;</td>
821
+ <td>&nbsp;</td>
822
+ <td> 0.00</td>
823
+ <td> 0.00</td>
824
+ <td> 0.00</td>
825
+ <td> 0.00</td>
826
+
827
+ <td> 2/2</td>
828
+ <td class="method_name"><a href="#_Class__Array__allocate_2148387240">&lt;Class::Array&gt;#allocate</a></td>
829
+ <td></td>
830
+ </tr>
831
+
832
+ <!-- Create divider row -->
833
+ <tr class="break"><td colspan="9"></td></tr>
834
+
835
+
836
+ <!-- Parents -->
837
+
838
+ <tr>
839
+ <td>&nbsp;</td>
840
+ <td>&nbsp;</td>
841
+ <td> 0.00</td>
842
+ <td> 0.00</td>
843
+ <td> 0.00</td>
844
+ <td> 0.00</td>
845
+
846
+ <td> 2/2</td>
847
+ <td class="method_name"><a href="#Class_new_2148387240">Class#new</a></td>
848
+ <td></td>
849
+ </tr>
850
+
851
+
852
+ <tr class="method">
853
+ <td> 0.01%</td>
854
+ <td> 0.01%</td>
855
+ <td> 0.00</td>
856
+ <td> 0.00</td>
857
+ <td> 0.00</td>
858
+ <td> 0.00</td>
859
+ <td> 2</td>
860
+ <td class="method_name"><a name="Array_initialize_2148387240">Array#initialize</a></td>
861
+ <td></td>
862
+ </tr>
863
+
864
+ <!-- Children -->
865
+
866
+ <!-- Create divider row -->
867
+ <tr class="break"><td colspan="9"></td></tr>
868
+
869
+
870
+ <!-- Parents -->
871
+
872
+ <tr>
873
+ <td>&nbsp;</td>
874
+ <td>&nbsp;</td>
875
+ <td> 0.00</td>
876
+ <td> 0.00</td>
877
+ <td> 0.00</td>
878
+ <td> 0.00</td>
879
+
880
+ <td> 2/2</td>
881
+ <td class="method_name"><a href="#Class_new_2148387240">Class#new</a></td>
882
+ <td></td>
883
+ </tr>
884
+
885
+
886
+ <tr class="method">
887
+ <td> 0.00%</td>
888
+ <td> 0.00%</td>
889
+ <td> 0.00</td>
890
+ <td> 0.00</td>
891
+ <td> 0.00</td>
892
+ <td> 0.00</td>
893
+ <td> 2</td>
894
+ <td class="method_name"><a name="_Class__Array__allocate_2148387240">&lt;Class::Array&gt;#allocate</a></td>
895
+ <td></td>
896
+ </tr>
897
+
898
+ <!-- Children -->
899
+
900
+ <!-- Create divider row -->
901
+ <tr class="break"><td colspan="9"></td></tr>
902
+
903
+ </table>
904
+
905
+ </body>
906
+ </html>