ruby-prof 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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>