ruby-prof 1.7.2 → 2.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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/{CHANGES → CHANGELOG.md} +112 -178
  3. data/README.md +5 -5
  4. data/bin/ruby-prof +1 -4
  5. data/docs/advanced-usage.md +132 -0
  6. data/docs/alternatives.md +98 -0
  7. data/docs/architecture.md +122 -0
  8. data/docs/best-practices.md +27 -0
  9. data/docs/getting-started.md +130 -0
  10. data/docs/history.md +11 -0
  11. data/docs/index.md +45 -0
  12. data/docs/profiling-rails.md +64 -0
  13. data/docs/public/examples/example.rb +33 -0
  14. data/docs/public/examples/generate_reports.rb +92 -0
  15. data/docs/public/examples/reports/call_info.txt +27 -0
  16. data/docs/public/examples/reports/call_stack.html +835 -0
  17. data/docs/public/examples/reports/callgrind.out +150 -0
  18. data/docs/public/examples/reports/flame_graph.html +408 -0
  19. data/docs/public/examples/reports/flat.txt +45 -0
  20. data/docs/public/examples/reports/graph.dot +129 -0
  21. data/docs/public/examples/reports/graph.html +1319 -0
  22. data/docs/public/examples/reports/graph.txt +100 -0
  23. data/docs/public/examples/reports/graphviz_viewer.html +1 -0
  24. data/docs/public/images/call_stack.png +0 -0
  25. data/docs/public/images/class_diagram.png +0 -0
  26. data/docs/public/images/dot_printer.png +0 -0
  27. data/docs/public/images/flame_graph.png +0 -0
  28. data/docs/public/images/flat.png +0 -0
  29. data/docs/public/images/graph.png +0 -0
  30. data/docs/public/images/graph_html.png +0 -0
  31. data/docs/public/images/ruby-prof-logo.svg +1 -0
  32. data/docs/reports.md +150 -0
  33. data/docs/stylesheets/extra.css +80 -0
  34. data/ext/ruby_prof/rp_allocation.c +0 -15
  35. data/ext/ruby_prof/rp_allocation.h +29 -33
  36. data/ext/ruby_prof/rp_call_tree.c +3 -0
  37. data/ext/ruby_prof/rp_call_tree.h +1 -4
  38. data/ext/ruby_prof/rp_call_trees.h +1 -4
  39. data/ext/ruby_prof/rp_measurement.c +0 -5
  40. data/ext/ruby_prof/rp_measurement.h +49 -53
  41. data/ext/ruby_prof/rp_method.c +3 -0
  42. data/ext/ruby_prof/rp_method.h +1 -4
  43. data/ext/ruby_prof/rp_profile.c +1 -1
  44. data/ext/ruby_prof/rp_profile.h +1 -5
  45. data/ext/ruby_prof/rp_stack.h +50 -53
  46. data/ext/ruby_prof/rp_thread.h +1 -4
  47. data/ext/ruby_prof/ruby_prof.h +1 -4
  48. data/ext/ruby_prof/vc/ruby_prof.vcxproj +7 -8
  49. data/lib/ruby-prof/assets/call_stack_printer.html.erb +746 -711
  50. data/lib/ruby-prof/assets/flame_graph_printer.html.erb +412 -0
  51. data/lib/ruby-prof/assets/graph_printer.html.erb +355 -355
  52. data/lib/ruby-prof/call_tree.rb +57 -57
  53. data/lib/ruby-prof/call_tree_visitor.rb +36 -36
  54. data/lib/ruby-prof/measurement.rb +17 -17
  55. data/lib/ruby-prof/printers/abstract_printer.rb +19 -33
  56. data/lib/ruby-prof/printers/call_info_printer.rb +53 -53
  57. data/lib/ruby-prof/printers/call_stack_printer.rb +168 -180
  58. data/lib/ruby-prof/printers/call_tree_printer.rb +132 -145
  59. data/lib/ruby-prof/printers/dot_printer.rb +177 -132
  60. data/lib/ruby-prof/printers/flame_graph_printer.rb +79 -0
  61. data/lib/ruby-prof/printers/flat_printer.rb +52 -52
  62. data/lib/ruby-prof/printers/graph_html_printer.rb +62 -63
  63. data/lib/ruby-prof/printers/graph_printer.rb +112 -113
  64. data/lib/ruby-prof/printers/multi_printer.rb +134 -127
  65. data/lib/ruby-prof/profile.rb +13 -0
  66. data/lib/ruby-prof/rack.rb +114 -105
  67. data/lib/ruby-prof/task.rb +147 -147
  68. data/lib/ruby-prof/thread.rb +20 -20
  69. data/lib/ruby-prof/version.rb +1 -1
  70. data/lib/ruby-prof.rb +50 -52
  71. data/lib/unprof.rb +10 -10
  72. data/ruby-prof.gemspec +5 -5
  73. data/test/abstract_printer_test.rb +25 -27
  74. data/test/alias_test.rb +203 -117
  75. data/test/call_tree_builder.rb +126 -126
  76. data/test/call_tree_visitor_test.rb +27 -27
  77. data/test/call_trees_test.rb +66 -66
  78. data/test/duplicate_names_test.rb +32 -32
  79. data/test/dynamic_method_test.rb +50 -50
  80. data/test/exceptions_test.rb +24 -24
  81. data/test/exclude_threads_test.rb +48 -48
  82. data/test/fiber_test.rb +72 -72
  83. data/test/inverse_call_tree_test.rb +174 -174
  84. data/test/line_number_test.rb +138 -1
  85. data/test/marshal_test.rb +144 -145
  86. data/test/measure_allocations.rb +26 -26
  87. data/test/measure_allocations_test.rb +340 -1
  88. data/test/measure_process_time_test.rb +3098 -3142
  89. data/test/measure_times.rb +56 -56
  90. data/test/measure_wall_time_test.rb +511 -372
  91. data/test/measurement_test.rb +82 -82
  92. data/test/merge_test.rb +48 -48
  93. data/test/multi_printer_test.rb +52 -66
  94. data/test/no_method_class_test.rb +15 -15
  95. data/test/pause_resume_test.rb +171 -171
  96. data/test/prime.rb +54 -54
  97. data/test/prime_script.rb +5 -5
  98. data/test/printer_call_stack_test.rb +28 -27
  99. data/test/printer_call_tree_test.rb +30 -30
  100. data/test/printer_flame_graph_test.rb +82 -0
  101. data/test/printer_flat_test.rb +99 -99
  102. data/test/printer_graph_html_test.rb +62 -59
  103. data/test/printer_graph_test.rb +42 -40
  104. data/test/printers_test.rb +28 -44
  105. data/test/printing_recursive_graph_test.rb +81 -81
  106. data/test/profile_test.rb +101 -101
  107. data/test/rack_test.rb +103 -93
  108. data/test/recursive_test.rb +139 -139
  109. data/test/scheduler.rb +4 -0
  110. data/test/singleton_test.rb +39 -38
  111. data/test/stack_printer_test.rb +61 -61
  112. data/test/start_stop_test.rb +106 -106
  113. data/test/test_helper.rb +4 -0
  114. data/test/thread_test.rb +29 -29
  115. data/test/unique_call_path_test.rb +123 -123
  116. data/test/yarv_test.rb +56 -56
  117. metadata +53 -11
  118. data/ext/ruby_prof/rp_measure_memory.c +0 -46
  119. data/lib/ruby-prof/compatibility.rb +0 -113
  120. data/test/compatibility_test.rb +0 -49
  121. data/test/measure_memory_test.rb +0 -1193
@@ -1,1193 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- require File.expand_path('../test_helper', __FILE__)
5
- require_relative './measure_allocations'
6
-
7
- class MeasureMemoryTest < TestCase
8
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.3')
9
- def test_memory
10
- result = RubyProf::Profile.profile(measure_mode: RubyProf::MEMORY) do
11
- allocator = Allocator.new
12
- allocator.run
13
- end
14
-
15
- thread = result.threads.first
16
-
17
- assert_in_delta(1040, thread.total_time, 1)
18
- methods = result.threads.first.methods.sort.reverse
19
- assert_equal(13, methods.length)
20
-
21
- # Method 0
22
- method = methods[0]
23
- assert_equal('MeasureMemoryTest#test_memory', method.full_name)
24
- assert_in_delta(1040, method.total_time, 1)
25
-
26
- assert_equal(0.0, method.wait_time)
27
- assert_equal(0.0, method.self_time)
28
- assert_in_delta(1040, method.children_time, 1)
29
- assert_equal(0, method.call_trees.callers.length)
30
-
31
- assert_equal(2, method.call_trees.callees.length)
32
- call_tree = method.call_trees.callees[0]
33
- assert_equal('Class#new', call_tree.target.full_name)
34
- assert_equal(40.0, call_tree.total_time)
35
- assert_equal(0.0, call_tree.wait_time)
36
- assert_equal(40.0, call_tree.self_time)
37
- assert_equal(0.0, call_tree.children_time)
38
-
39
- call_tree = method.call_trees.callees[1]
40
- assert_equal('Allocator#run', call_tree.target.full_name)
41
- assert_equal(1000.0, call_tree.total_time)
42
- assert_equal(0.0, call_tree.wait_time)
43
- assert_equal(0.0, call_tree.self_time)
44
- assert_equal(1000.0, call_tree.children_time)
45
-
46
- # Method 1
47
- method = methods[1]
48
- assert_equal('Allocator#run',method.full_name)
49
- assert_equal(1000.0, method.total_time)
50
- assert_equal(0.0, method.wait_time)
51
- assert_equal(0.0, method.self_time)
52
- assert_equal(1000.0, method.children_time)
53
-
54
- assert_equal(1, method.call_trees.callers.length)
55
- call_tree = method.call_trees.callers[0]
56
- assert_equal('MeasureMemoryTest#test_memory', call_tree.parent.target.full_name)
57
- assert_equal(1000.0, call_tree.total_time)
58
- assert_equal(0.0, call_tree.wait_time)
59
- assert_equal(0.0, call_tree.self_time)
60
- assert_equal(1000.0, call_tree.children_time)
61
-
62
- assert_equal(3, method.call_trees.callees.length)
63
- call_tree = method.call_trees.callees[0]
64
- assert_equal('Allocator#make_arrays', call_tree.target.full_name)
65
- assert_equal(400.0, call_tree.total_time)
66
- assert_equal(0.0, call_tree.wait_time)
67
- assert_equal(0.0, call_tree.self_time)
68
- assert_equal(400.0, call_tree.children_time)
69
-
70
- call_tree = method.call_trees.callees[1]
71
- assert_equal('Allocator#make_hashes', call_tree.target.full_name)
72
- assert_equal(200.0, call_tree.total_time)
73
- assert_equal(0.0, call_tree.wait_time)
74
- assert_equal(0.0, call_tree.self_time)
75
- assert_equal(200.0, call_tree.children_time)
76
-
77
- call_tree = method.call_trees.callees[2]
78
- assert_equal('Allocator#make_strings', call_tree.target.full_name)
79
- assert_equal(400.0, call_tree.total_time)
80
- assert_equal(0.0, call_tree.wait_time)
81
- assert_equal(40.0, call_tree.self_time)
82
- assert_equal(360.0, call_tree.children_time)
83
-
84
- # Method 2
85
- method = methods[2]
86
- assert_equal('Class#new', method.full_name)
87
- assert_equal(440.0, method.total_time)
88
- assert_equal(0.0, method.wait_time)
89
- assert_equal(280.0, method.self_time)
90
- assert_equal(160.0, method.children_time)
91
-
92
- assert_equal(3, method.call_trees.callers.length)
93
- call_tree = method.call_trees.callers[0]
94
- assert_equal('MeasureMemoryTest#test_memory', call_tree.parent.target.full_name)
95
- assert_equal(40.0, call_tree.total_time)
96
- assert_equal(0.0, call_tree.wait_time)
97
- assert_equal(40.0, call_tree.self_time)
98
- assert_equal(0.0, call_tree.children_time)
99
-
100
- call_tree = method.call_trees.callers[1]
101
- assert_equal('Allocator#make_hashes', call_tree.parent.target.full_name)
102
- assert_equal(200.0, call_tree.total_time)
103
- assert_equal(0.0, call_tree.wait_time)
104
- assert_equal(200.0, call_tree.self_time)
105
- assert_equal(0.0, call_tree.children_time)
106
-
107
- call_tree = method.call_trees.callers[2]
108
- assert_equal('Allocator#make_strings', call_tree.parent.target.full_name)
109
- assert_equal(200.0, call_tree.total_time)
110
- assert_equal(0.0, call_tree.wait_time)
111
- assert_equal(40.0, call_tree.self_time)
112
- assert_equal(160.0, call_tree.children_time)
113
-
114
- assert_equal(3, method.call_trees.callees.length)
115
- call_tree = method.call_trees.callees[0]
116
- assert_equal('BasicObject#initialize', call_tree.target.full_name)
117
- assert_equal(0.0, call_tree.total_time)
118
- assert_equal(0.0, call_tree.wait_time)
119
- assert_equal(0.0, call_tree.self_time)
120
- assert_equal(0.0, call_tree.children_time)
121
-
122
- call_tree = method.call_trees.callees[1]
123
- assert_equal('Hash#initialize', call_tree.target.full_name)
124
- assert_equal(0.0, call_tree.total_time)
125
- assert_equal(0.0, call_tree.wait_time)
126
- assert_equal(0.0, call_tree.self_time)
127
- assert_equal(0.0, call_tree.children_time)
128
-
129
- call_tree = method.call_trees.callees[2]
130
- assert_equal('String#initialize', call_tree.target.full_name)
131
- assert_equal(160.0, call_tree.total_time)
132
- assert_equal(0.0, call_tree.wait_time)
133
- assert_equal(160.0, call_tree.self_time)
134
- assert_equal(0.0, call_tree.children_time)
135
-
136
- # Method 3
137
- method = methods[3]
138
- assert_equal('Allocator#make_strings', method.full_name)
139
- assert_equal(400.0, method.total_time)
140
- assert_equal(0.0, method.wait_time)
141
- assert_equal(40.0, method.self_time)
142
- assert_equal(360.0, method.children_time)
143
-
144
- assert_equal(1, method.call_trees.callers.length)
145
- call_tree = method.call_trees.callers[0]
146
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
147
- assert_equal(400.0, call_tree.total_time)
148
- assert_equal(0.0, call_tree.wait_time)
149
- assert_equal(40.0, call_tree.self_time)
150
- assert_equal(360.0, call_tree.children_time)
151
-
152
- assert_equal(2, method.call_trees.callees.length)
153
- call_tree = method.call_trees.callees[0]
154
- assert_equal('String#*', call_tree.target.full_name)
155
- assert_equal(160.0, call_tree.total_time)
156
- assert_equal(0.0, call_tree.wait_time)
157
- assert_equal(160.0, call_tree.self_time)
158
- assert_equal(0.0, call_tree.children_time)
159
-
160
- call_tree = method.call_trees.callees[1]
161
- assert_equal('Class#new', call_tree.target.full_name)
162
- assert_equal(200.0, call_tree.total_time)
163
- assert_equal(0.0, call_tree.wait_time)
164
- assert_equal(40.0, call_tree.self_time)
165
- assert_equal(160.0, call_tree.children_time)
166
-
167
- # Method 4
168
- method = methods[4]
169
- assert_equal('Allocator#make_arrays', method.full_name)
170
- assert_equal(400.0, method.total_time)
171
- assert_equal(0.0, method.wait_time)
172
- assert_equal(0.0, method.self_time)
173
- assert_equal(400.0, method.children_time)
174
-
175
- assert_equal(1, method.call_trees.callers.length)
176
- call_tree = method.call_trees.callers[0]
177
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
178
- assert_equal(400.0, call_tree.total_time)
179
- assert_equal(0.0, call_tree.wait_time)
180
- assert_equal(0.0, call_tree.self_time)
181
- assert_equal(400.0, call_tree.children_time)
182
-
183
- assert_equal(1, method.call_trees.callees.length)
184
- call_tree = method.call_trees.callees[0]
185
- assert_equal('Integer#times', call_tree.target.full_name)
186
- assert_equal(400.0, call_tree.total_time)
187
- assert_equal(0.0, call_tree.wait_time)
188
- assert_equal(0.0, call_tree.self_time)
189
- assert_equal(400.0, call_tree.children_time)
190
-
191
- # Method 5
192
- method = methods[5]
193
- assert_equal('Integer#times', method.full_name)
194
- assert_equal(400.0, method.total_time)
195
- assert_equal(0.0, method.wait_time)
196
- assert_equal(0.0, method.self_time)
197
- assert_equal(400.0, method.children_time)
198
-
199
- assert_equal(1, method.call_trees.callers.length)
200
- call_tree = method.call_trees.callers[0]
201
- assert_equal('Allocator#make_arrays', call_tree.parent.target.full_name)
202
- assert_equal(400.0, call_tree.total_time)
203
- assert_equal(0.0, call_tree.wait_time)
204
- assert_equal(0.0, call_tree.self_time)
205
- assert_equal(400.0, call_tree.children_time)
206
-
207
- assert_equal(1, method.call_trees.callees.length)
208
- call_tree = method.call_trees.callees[0]
209
- assert_equal('<Class::Array>#new', call_tree.target.full_name)
210
- assert_equal(400.0, call_tree.total_time)
211
- assert_equal(0.0, call_tree.wait_time)
212
- assert_equal(400.0, call_tree.self_time)
213
- assert_equal(0.0, call_tree.children_time)
214
-
215
- # Method 6
216
- method = methods[6]
217
- assert_equal('<Class::Array>#new', method.full_name)
218
- assert_equal(400.0, method.total_time)
219
- assert_equal(0.0, method.wait_time)
220
- assert_equal(400.0, method.self_time)
221
- assert_equal(0.0, method.children_time)
222
-
223
- assert_equal(1, method.call_trees.callers.length)
224
- call_tree = method.call_trees.callers[0]
225
- assert_equal('Integer#times', call_tree.parent.target.full_name)
226
- assert_equal(400.0, call_tree.total_time)
227
- assert_equal(0.0, call_tree.wait_time)
228
- assert_equal(400.0, call_tree.self_time)
229
- assert_equal(0.0, call_tree.children_time)
230
-
231
- assert_equal(1, method.call_trees.callees.length)
232
- call_tree = method.call_trees.callees[0]
233
- assert_equal('Array#initialize', call_tree.target.full_name)
234
- assert_equal(0.0, call_tree.total_time)
235
- assert_equal(0.0, call_tree.wait_time)
236
- assert_equal(0.0, call_tree.self_time)
237
- assert_equal(0.0, call_tree.children_time)
238
-
239
- # Method 7
240
- method = methods[7]
241
- assert_equal('Allocator#make_hashes', method.full_name)
242
- assert_equal(200.0, method.total_time)
243
- assert_equal(0.0, method.wait_time)
244
- assert_equal(0.0, method.self_time)
245
- assert_equal(200.0, method.children_time)
246
-
247
- assert_equal(1, method.call_trees.callers.length)
248
- call_tree = method.call_trees.callers[0]
249
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
250
- assert_equal(200.0, call_tree.total_time)
251
- assert_equal(0.0, call_tree.wait_time)
252
- assert_equal(0.0, call_tree.self_time)
253
- assert_equal(200.0, call_tree.children_time)
254
-
255
- assert_equal(1, method.call_trees.callees.length)
256
- call_tree = method.call_trees.callees[0]
257
- assert_equal('Class#new', call_tree.target.full_name)
258
- assert_equal(200.0, call_tree.total_time)
259
- assert_equal(0.0, call_tree.wait_time)
260
- assert_equal(200.0, call_tree.self_time)
261
- assert_equal(0.0, call_tree.children_time)
262
-
263
- # Method 8
264
- method = methods[8]
265
- assert_equal('String#*', method.full_name)
266
- assert_equal(160.0, method.total_time)
267
- assert_equal(0.0, method.wait_time)
268
- assert_equal(160.0, method.self_time)
269
- assert_equal(0.0, method.children_time)
270
-
271
- assert_equal(1, method.call_trees.callers.length)
272
- call_tree = method.call_trees.callers[0]
273
- assert_equal('Allocator#make_strings', call_tree.parent.target.full_name)
274
- assert_equal(160.0, call_tree.total_time)
275
- assert_equal(0.0, call_tree.wait_time)
276
- assert_equal(160.0, call_tree.self_time)
277
- assert_equal(0.0, call_tree.children_time)
278
-
279
- assert_equal(0.0, method.call_trees.callees.length)
280
-
281
- # Method 9
282
- method = methods[9]
283
- assert_equal('String#initialize', method.full_name)
284
- assert_equal(160.0, method.total_time)
285
- assert_equal(0.0, method.wait_time)
286
- assert_equal(160.0, method.self_time)
287
- assert_equal(0.0, method.children_time)
288
-
289
- assert_equal(1, method.call_trees.callers.length)
290
- call_tree = method.call_trees.callers[0]
291
- assert_equal('Class#new', call_tree.parent.target.full_name)
292
- assert_equal(160.0, call_tree.total_time)
293
- assert_equal(0.0, call_tree.wait_time)
294
- assert_equal(160.0, call_tree.self_time)
295
- assert_equal(0.0, call_tree.children_time)
296
-
297
- assert_equal(0.0, method.call_trees.callees.length)
298
-
299
- # Method 10
300
- method = methods[10]
301
- assert_equal('BasicObject#initialize', method.full_name)
302
- assert_equal(0.0, method.total_time)
303
- assert_equal(0.0, method.wait_time)
304
- assert_equal(0.0, method.self_time)
305
- assert_equal(0.0, method.children_time)
306
-
307
- assert_equal(1, method.call_trees.callers.length)
308
- call_tree = method.call_trees.callers[0]
309
- assert_equal('Class#new', call_tree.parent.target.full_name)
310
- assert_equal(0.0, call_tree.total_time)
311
- assert_equal(0.0, call_tree.wait_time)
312
- assert_equal(0.0, call_tree.self_time)
313
- assert_equal(0.0, call_tree.children_time)
314
-
315
- assert_equal(0.0, method.call_trees.callees.length)
316
-
317
- # Method 11
318
- method = methods[11]
319
- assert_equal('Hash#initialize', method.full_name)
320
- assert_equal(0.0, method.total_time)
321
- assert_equal(0.0, method.wait_time)
322
- assert_equal(0.0, method.self_time)
323
- assert_equal(0.0, method.children_time)
324
-
325
- assert_equal(1, method.call_trees.callers.length)
326
- call_tree = method.call_trees.callers[0]
327
- assert_equal('Class#new', call_tree.parent.target.full_name)
328
- assert_equal(0.0, call_tree.total_time)
329
- assert_equal(0.0, call_tree.wait_time)
330
- assert_equal(0.0, call_tree.self_time)
331
- assert_equal(0.0, call_tree.children_time)
332
-
333
- assert_equal(0.0, method.call_trees.callees.length)
334
-
335
- # Method 12
336
- method = methods[12]
337
- assert_equal('Array#initialize', method.full_name)
338
- assert_equal(0.0, method.total_time)
339
- assert_equal(0.0, method.wait_time)
340
- assert_equal(0.0, method.self_time)
341
- assert_equal(0.0, method.children_time)
342
-
343
- assert_equal(1, method.call_trees.callers.length)
344
- call_tree = method.call_trees.callers[0]
345
- assert_equal('<Class::Array>#new', call_tree.parent.target.full_name)
346
- assert_equal(0.0, call_tree.total_time)
347
- assert_equal(0.0, call_tree.wait_time)
348
- assert_equal(0.0, call_tree.self_time)
349
- assert_equal(0.0, call_tree.children_time)
350
-
351
- assert_equal(0.0, method.call_trees.callees.length)
352
- end
353
- elsif Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.4')
354
- def test_memory
355
- result = RubyProf::Profile.profile(measure_mode: RubyProf::MEMORY) do
356
- allocator = Allocator.new
357
- allocator.run
358
- end
359
-
360
- thread = result.threads.first
361
-
362
- assert_in_delta(1640, thread.total_time, 1)
363
- methods = result.threads.first.methods.sort.reverse
364
- assert_equal(17, methods.length)
365
-
366
- # Method 0
367
- method = methods[0]
368
- assert_equal('MeasureMemoryTest#test_memory', method.full_name)
369
- assert_in_delta(1640, method.total_time, 1)
370
-
371
- assert_equal(0.0, method.wait_time)
372
- assert_equal(0.0, method.self_time)
373
- assert_in_delta(1640, method.children_time, 1)
374
- assert_equal(0, method.call_trees.callers.length)
375
-
376
- assert_equal(2, method.call_trees.callees.length)
377
- call_tree = method.call_trees.callees[0]
378
- assert_equal('Class#new', call_tree.target.full_name)
379
- assert_equal(40.0, call_tree.total_time)
380
- assert_equal(0.0, call_tree.wait_time)
381
- assert_equal(40.0, call_tree.self_time)
382
- assert_equal(0.0, call_tree.children_time)
383
-
384
- call_tree = method.call_trees.callees[1]
385
- assert_equal('Allocator#run', call_tree.target.full_name)
386
- assert_equal(1600.0, call_tree.total_time)
387
- assert_equal(0.0, call_tree.wait_time)
388
- assert_equal(0.0, call_tree.self_time)
389
- assert_equal(1600.0, call_tree.children_time)
390
-
391
- # Method 1
392
- method = methods[1]
393
- assert_equal('Allocator#run',method.full_name)
394
- assert_equal(1600.0, method.total_time)
395
- assert_equal(0.0, method.wait_time)
396
- assert_equal(0.0, method.self_time)
397
- assert_equal(1600.0, method.children_time)
398
-
399
- assert_equal(1, method.call_trees.callers.length)
400
- call_tree = method.call_trees.callers[0]
401
- assert_equal('MeasureMemoryTest#test_memory', call_tree.parent.target.full_name)
402
- assert_equal(1600.0, call_tree.total_time)
403
- assert_equal(0.0, call_tree.wait_time)
404
- assert_equal(0.0, call_tree.self_time)
405
- assert_equal(1600.0, call_tree.children_time)
406
-
407
- assert_equal(3, method.call_trees.callees.length)
408
- call_tree = method.call_trees.callees[0]
409
- assert_equal('Allocator#make_arrays', call_tree.target.full_name)
410
- assert_equal(400.0, call_tree.total_time)
411
- assert_equal(0.0, call_tree.wait_time)
412
- assert_equal(0.0, call_tree.self_time)
413
- assert_equal(400.0, call_tree.children_time)
414
-
415
- call_tree = method.call_trees.callees[1]
416
- assert_equal('Allocator#make_hashes', call_tree.target.full_name)
417
- assert_equal(800.0, call_tree.total_time)
418
- assert_equal(0.0, call_tree.wait_time)
419
- assert_equal(0.0, call_tree.self_time)
420
- assert_equal(800.0, call_tree.children_time)
421
-
422
- call_tree = method.call_trees.callees[2]
423
- assert_equal('Allocator#make_strings', call_tree.target.full_name)
424
- assert_equal(400.0, call_tree.total_time)
425
- assert_equal(0.0, call_tree.wait_time)
426
- assert_equal(40.0, call_tree.self_time)
427
- assert_equal(360.0, call_tree.children_time)
428
-
429
- # Method 2
430
- method = methods[2]
431
- assert_equal('Class#new', method.full_name)
432
- assert_equal(840.0, method.total_time)
433
- assert_equal(0.0, method.wait_time)
434
- assert_equal(840.0, method.self_time)
435
- assert_equal(0.0, method.children_time)
436
-
437
- assert_equal(2, method.call_trees.callers.length)
438
- call_tree = method.call_trees.callers[0]
439
- assert_equal('MeasureMemoryTest#test_memory', call_tree.parent.target.full_name)
440
- assert_equal(40.0, call_tree.total_time)
441
- assert_equal(0.0, call_tree.wait_time)
442
- assert_equal(40.0, call_tree.self_time)
443
- assert_equal(0.0, call_tree.children_time)
444
-
445
- call_tree = method.call_trees.callers[1]
446
- assert_equal('Allocator#make_hashes', call_tree.parent.target.full_name)
447
- assert_equal(800.0, call_tree.total_time)
448
- assert_equal(0.0, call_tree.wait_time)
449
- assert_equal(800.0, call_tree.self_time)
450
- assert_equal(0.0, call_tree.children_time)
451
-
452
- assert_equal(2, method.call_trees.callees.length)
453
- call_tree = method.call_trees.callees[0]
454
- assert_equal('BasicObject#initialize', call_tree.target.full_name)
455
- assert_equal(0.0, call_tree.total_time)
456
- assert_equal(0.0, call_tree.wait_time)
457
- assert_equal(0.0, call_tree.self_time)
458
- assert_equal(0.0, call_tree.children_time)
459
-
460
- call_tree = method.call_trees.callees[1]
461
- assert_equal('Hash#initialize', call_tree.target.full_name)
462
- assert_equal(0.0, call_tree.total_time)
463
- assert_equal(0.0, call_tree.wait_time)
464
- assert_equal(0.0, call_tree.self_time)
465
- assert_equal(0.0, call_tree.children_time)
466
-
467
- # Method 3
468
- method = methods[3]
469
- assert_equal('Allocator#make_hashes', method.full_name)
470
- assert_equal(800.0, method.total_time)
471
- assert_equal(0.0, method.wait_time)
472
- assert_equal(0.0, method.self_time)
473
- assert_equal(800.0, method.children_time)
474
-
475
- assert_equal(1, method.call_trees.callers.length)
476
- call_tree = method.call_trees.callers[0]
477
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
478
- assert_equal(800.0, call_tree.total_time)
479
- assert_equal(0.0, call_tree.wait_time)
480
- assert_equal(0.0, call_tree.self_time)
481
- assert_equal(800.0, call_tree.children_time)
482
-
483
- assert_equal(1, method.call_trees.callees.length)
484
- call_tree = method.call_trees.callees[0]
485
- assert_equal('Class#new', call_tree.target.full_name)
486
- assert_equal(800.0, call_tree.total_time)
487
- assert_equal(0.0, call_tree.wait_time)
488
- assert_equal(800.0, call_tree.self_time)
489
- assert_equal(0.0, call_tree.children_time)
490
-
491
- # Method 4
492
- method = methods[4]
493
- assert_equal('Allocator#make_strings', method.full_name)
494
- assert_equal(400.0, method.total_time)
495
- assert_equal(0.0, method.wait_time)
496
- assert_equal(40.0, method.self_time)
497
- assert_equal(360.0, method.children_time)
498
-
499
- assert_equal(1, method.call_trees.callers.length)
500
- call_tree = method.call_trees.callers[0]
501
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
502
- assert_equal(400.0, call_tree.total_time)
503
- assert_equal(0.0, call_tree.wait_time)
504
- assert_equal(40.0, call_tree.self_time)
505
- assert_equal(360.0, call_tree.children_time)
506
-
507
- assert_equal(2, method.call_trees.callees.length)
508
- call_tree = method.call_trees.callees[0]
509
- assert_equal('String#*', call_tree.target.full_name)
510
- assert_equal(160.0, call_tree.total_time)
511
- assert_equal(0.0, call_tree.wait_time)
512
- assert_equal(160.0, call_tree.self_time)
513
- assert_equal(0.0, call_tree.children_time)
514
-
515
- call_tree = method.call_trees.callees[1]
516
- assert_equal('<Class::String>#new', call_tree.target.full_name)
517
- assert_equal(200.0, call_tree.total_time)
518
- assert_equal(0.0, call_tree.wait_time)
519
- assert_equal(40.0, call_tree.self_time)
520
- assert_equal(160.0, call_tree.children_time)
521
-
522
- # Method 5
523
- method = methods[5]
524
- assert_equal('Allocator#make_arrays', method.full_name)
525
- assert_equal(400.0, method.total_time)
526
- assert_equal(0.0, method.wait_time)
527
- assert_equal(0.0, method.self_time)
528
- assert_equal(400.0, method.children_time)
529
-
530
- assert_equal(1, method.call_trees.callers.length)
531
- call_tree = method.call_trees.callers[0]
532
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
533
- assert_equal(400.0, call_tree.total_time)
534
- assert_equal(0.0, call_tree.wait_time)
535
- assert_equal(0.0, call_tree.self_time)
536
- assert_equal(400.0, call_tree.children_time)
537
-
538
- assert_equal(1, method.call_trees.callees.length)
539
- call_tree = method.call_trees.callees[0]
540
- assert_equal('Integer#times', call_tree.target.full_name)
541
- assert_equal(400.0, call_tree.total_time)
542
- assert_equal(0.0, call_tree.wait_time)
543
- assert_equal(0.0, call_tree.self_time)
544
- assert_equal(400.0, call_tree.children_time)
545
-
546
- # Method 6
547
- method = methods[6]
548
- assert_equal('Integer#times', method.full_name)
549
- assert_equal(400.0, method.total_time)
550
- assert_equal(0.0, method.wait_time)
551
- assert_equal(0.0, method.self_time)
552
- assert_equal(400.0, method.children_time)
553
-
554
- assert_equal(1, method.call_trees.callers.length)
555
- call_tree = method.call_trees.callers[0]
556
- assert_equal('Allocator#make_arrays', call_tree.parent.target.full_name)
557
- assert_equal(400.0, call_tree.total_time)
558
- assert_equal(0.0, call_tree.wait_time)
559
- assert_equal(0.0, call_tree.self_time)
560
- assert_equal(400.0, call_tree.children_time)
561
-
562
- assert_equal(4, method.call_trees.callees.length)
563
-
564
- call_tree = method.call_trees.callees[0]
565
- assert_equal('Kernel#block_given?', call_tree.target.full_name)
566
- assert_equal(0, call_tree.total_time)
567
- assert_equal(0, call_tree.wait_time)
568
- assert_equal(0, call_tree.self_time)
569
- assert_equal(0, call_tree.children_time)
570
-
571
- call_tree = method.call_trees.callees[1]
572
- assert_equal('Integer#<', call_tree.target.full_name)
573
- assert_equal(0, call_tree.total_time)
574
- assert_equal(0, call_tree.wait_time)
575
- assert_equal(0, call_tree.self_time)
576
- assert_equal(0, call_tree.children_time)
577
-
578
- call_tree = method.call_trees.callees[2]
579
- assert_equal('<Class::Array>#new', call_tree.target.full_name)
580
- assert_equal(400, call_tree.total_time)
581
- assert_equal(0, call_tree.wait_time)
582
- assert_equal(400, call_tree.self_time)
583
- assert_equal(0, call_tree.children_time)
584
-
585
- call_tree = method.call_trees.callees[3]
586
- assert_equal('Integer#succ', call_tree.target.full_name)
587
- assert_equal(0, call_tree.total_time)
588
- assert_equal(0, call_tree.wait_time)
589
- assert_equal(0, call_tree.self_time)
590
- assert_equal(0, call_tree.children_time)
591
-
592
- # Method 7
593
- method = methods[7]
594
- assert_equal('<Class::Array>#new', method.full_name)
595
- assert_equal(400.0, method.total_time)
596
- assert_equal(0.0, method.wait_time)
597
- assert_equal(400.0, method.self_time)
598
- assert_equal(0.0, method.children_time)
599
-
600
- assert_equal(1, method.call_trees.callers.length)
601
- call_tree = method.call_trees.callers[0]
602
- assert_equal('Integer#times', call_tree.parent.target.full_name)
603
- assert_equal(400.0, call_tree.total_time)
604
- assert_equal(0.0, call_tree.wait_time)
605
- assert_equal(400.0, call_tree.self_time)
606
- assert_equal(0.0, call_tree.children_time)
607
-
608
- assert_equal(1, method.call_trees.callees.length)
609
- call_tree = method.call_trees.callees[0]
610
- assert_equal('Array#initialize', call_tree.target.full_name)
611
- assert_equal(0.0, call_tree.total_time)
612
- assert_equal(0.0, call_tree.wait_time)
613
- assert_equal(0.0, call_tree.self_time)
614
- assert_equal(0.0, call_tree.children_time)
615
-
616
- # Method 8
617
- method = methods[8]
618
- assert_equal('<Class::String>#new', method.full_name)
619
- assert_equal(200, method.total_time)
620
- assert_equal(0, method.wait_time)
621
- assert_equal(40, method.self_time)
622
- assert_equal(160, method.children_time)
623
-
624
- assert_equal(1, method.call_trees.callers.length)
625
- call_tree = method.call_trees.callers[0]
626
- assert_equal('Allocator#make_strings', call_tree.parent.target.full_name)
627
- assert_equal(200, call_tree.total_time)
628
- assert_equal(0, call_tree.wait_time)
629
- assert_equal(40, call_tree.self_time)
630
- assert_equal(160, call_tree.children_time)
631
-
632
- assert_equal(1, method.call_trees.callees.length)
633
-
634
- call_tree = method.call_trees.callees[0]
635
- assert_equal('String#initialize', call_tree.target.full_name)
636
- assert_equal(160, call_tree.total_time)
637
- assert_equal(0, call_tree.wait_time)
638
- assert_equal(160, call_tree.self_time)
639
- assert_equal(0, call_tree.children_time)
640
-
641
- # Method 9
642
- method = methods[9]
643
- assert_equal('String#*', method.full_name)
644
- assert_equal(160, method.total_time)
645
- assert_equal(0, method.wait_time)
646
- assert_equal(160, method.self_time)
647
- assert_equal(0, method.children_time)
648
-
649
- assert_equal(1, method.call_trees.callers.length)
650
- call_tree = method.call_trees.callers[0]
651
- assert_equal('Allocator#make_strings', call_tree.parent.target.full_name)
652
- assert_equal(160, call_tree.total_time)
653
- assert_equal(0, call_tree.wait_time)
654
- assert_equal(160, call_tree.self_time)
655
- assert_equal(0, call_tree.children_time)
656
-
657
- assert_equal(0, method.call_trees.callees.length)
658
-
659
- # Method 10
660
- method = methods[10]
661
- assert_equal('String#initialize', method.full_name)
662
- assert_equal(160, method.total_time)
663
- assert_equal(0, method.wait_time)
664
- assert_equal(160, method.self_time)
665
- assert_equal(0, method.children_time)
666
-
667
- assert_equal(1, method.call_trees.callers.length)
668
- call_tree = method.call_trees.callers[0]
669
- assert_equal('<Class::String>#new', call_tree.parent.target.full_name)
670
- assert_equal(160, call_tree.total_time)
671
- assert_equal(0, call_tree.wait_time)
672
- assert_equal(160, call_tree.self_time)
673
- assert_equal(0, call_tree.children_time)
674
-
675
- assert_equal(0, method.call_trees.callees.length)
676
-
677
- # Method 11
678
- method = methods[11]
679
- assert_equal('BasicObject#initialize', method.full_name)
680
- assert_equal(0, method.total_time)
681
- assert_equal(0, method.wait_time)
682
- assert_equal(0, method.self_time)
683
- assert_equal(0, method.children_time)
684
-
685
- assert_equal(1, method.call_trees.callers.length)
686
- call_tree = method.call_trees.callers[0]
687
- assert_equal('Class#new', call_tree.parent.target.full_name)
688
- assert_equal(0, call_tree.total_time)
689
- assert_equal(0, call_tree.wait_time)
690
- assert_equal(0, call_tree.self_time)
691
- assert_equal(0, call_tree.children_time)
692
-
693
- assert_equal(0, method.call_trees.callees.length)
694
-
695
- # Method 12
696
- method = methods[12]
697
- assert_equal('Kernel#block_given?', method.full_name)
698
- assert_equal(0, method.total_time)
699
- assert_equal(0, method.wait_time)
700
- assert_equal(0, method.self_time)
701
- assert_equal(0, method.children_time)
702
-
703
- assert_equal(1, method.call_trees.callers.length)
704
- call_tree = method.call_trees.callers[0]
705
- assert_equal('Integer#times', call_tree.parent.target.full_name)
706
- assert_equal(0, call_tree.total_time)
707
- assert_equal(0, call_tree.wait_time)
708
- assert_equal(0, call_tree.self_time)
709
- assert_equal(0, call_tree.children_time)
710
-
711
- assert_equal(0, method.call_trees.callees.length)
712
-
713
- # Method 13
714
- method = methods[13]
715
- assert_equal('Integer#succ', method.full_name)
716
- assert_equal(0, method.total_time)
717
- assert_equal(0, method.wait_time)
718
- assert_equal(0, method.self_time)
719
- assert_equal(0, method.children_time)
720
-
721
- assert_equal(1, method.call_trees.callers.length)
722
- call_tree = method.call_trees.callers[0]
723
- assert_equal('Integer#times', call_tree.parent.target.full_name)
724
- assert_equal(0, call_tree.total_time)
725
- assert_equal(0, call_tree.wait_time)
726
- assert_equal(0, call_tree.self_time)
727
- assert_equal(0, call_tree.children_time)
728
-
729
- assert_equal(0, method.call_trees.callees.length)
730
-
731
- # Method 14
732
- method = methods[14]
733
- assert_equal('Integer#<', method.full_name)
734
- assert_equal(0, method.total_time)
735
- assert_equal(0, method.wait_time)
736
- assert_equal(0, method.self_time)
737
- assert_equal(0, method.children_time)
738
-
739
- assert_equal(1, method.call_trees.callers.length)
740
- call_tree = method.call_trees.callers[0]
741
- assert_equal('Integer#times', call_tree.parent.target.full_name)
742
- assert_equal(0, call_tree.total_time)
743
- assert_equal(0, call_tree.wait_time)
744
- assert_equal(0, call_tree.self_time)
745
- assert_equal(0, call_tree.children_time)
746
-
747
- assert_equal(0, method.call_trees.callees.length)
748
-
749
- # Method 15
750
- method = methods[15]
751
- assert_equal('Hash#initialize', method.full_name)
752
- assert_equal(0.0, method.total_time)
753
- assert_equal(0.0, method.wait_time)
754
- assert_equal(0.0, method.self_time)
755
- assert_equal(0.0, method.children_time)
756
-
757
- assert_equal(1, method.call_trees.callers.length)
758
- call_tree = method.call_trees.callers[0]
759
- assert_equal('Class#new', call_tree.parent.target.full_name)
760
- assert_equal(0.0, call_tree.total_time)
761
- assert_equal(0.0, call_tree.wait_time)
762
- assert_equal(0.0, call_tree.self_time)
763
- assert_equal(0.0, call_tree.children_time)
764
-
765
- assert_equal(0, method.call_trees.callees.length)
766
-
767
- # Method 16
768
- method = methods[16]
769
- assert_equal('Array#initialize', method.full_name)
770
- assert_equal(0.0, method.total_time)
771
- assert_equal(0.0, method.wait_time)
772
- assert_equal(0.0, method.self_time)
773
- assert_equal(0.0, method.children_time)
774
-
775
- assert_equal(1, method.call_trees.callers.length)
776
- call_tree = method.call_trees.callers[0]
777
- assert_equal('<Class::Array>#new', call_tree.parent.target.full_name)
778
- assert_equal(0.0, call_tree.total_time)
779
- assert_equal(0.0, call_tree.wait_time)
780
- assert_equal(0.0, call_tree.self_time)
781
- assert_equal(0.0, call_tree.children_time)
782
-
783
- assert_equal(0.0, method.call_trees.callees.length)
784
- end
785
- else
786
- def test_memory
787
- result = RubyProf::Profile.profile(measure_mode: RubyProf::MEMORY) do
788
- allocator = Allocator.new
789
- allocator.run
790
- end
791
-
792
- thread = result.threads.first
793
-
794
- assert_in_delta(1640, thread.total_time, 1)
795
- methods = result.threads.first.methods.sort.reverse
796
- assert_equal(16, methods.length)
797
-
798
- # Method 0
799
- method = methods[0]
800
- assert_equal('MeasureMemoryTest#test_memory', method.full_name)
801
- assert_in_delta(1640, method.total_time, 1)
802
-
803
- assert_equal(0.0, method.wait_time)
804
- assert_equal(0.0, method.self_time)
805
- assert_in_delta(1640, method.children_time, 1)
806
- assert_equal(0, method.call_trees.callers.length)
807
-
808
- assert_equal(2, method.call_trees.callees.length)
809
- call_tree = method.call_trees.callees[0]
810
- assert_equal('Class#new', call_tree.target.full_name)
811
- assert_equal(40.0, call_tree.total_time)
812
- assert_equal(0.0, call_tree.wait_time)
813
- assert_equal(40.0, call_tree.self_time)
814
- assert_equal(0.0, call_tree.children_time)
815
-
816
- call_tree = method.call_trees.callees[1]
817
- assert_equal('Allocator#run', call_tree.target.full_name)
818
- assert_equal(1600.0, call_tree.total_time)
819
- assert_equal(0.0, call_tree.wait_time)
820
- assert_equal(0.0, call_tree.self_time)
821
- assert_equal(1600.0, call_tree.children_time)
822
-
823
- # Method 1
824
- method = methods[1]
825
- assert_equal('Allocator#run',method.full_name)
826
- assert_equal(1600.0, method.total_time)
827
- assert_equal(0.0, method.wait_time)
828
- assert_equal(0.0, method.self_time)
829
- assert_equal(1600.0, method.children_time)
830
-
831
- assert_equal(1, method.call_trees.callers.length)
832
- call_tree = method.call_trees.callers[0]
833
- assert_equal('MeasureMemoryTest#test_memory', call_tree.parent.target.full_name)
834
- assert_equal(1600.0, call_tree.total_time)
835
- assert_equal(0.0, call_tree.wait_time)
836
- assert_equal(0.0, call_tree.self_time)
837
- assert_equal(1600.0, call_tree.children_time)
838
-
839
- assert_equal(3, method.call_trees.callees.length)
840
- call_tree = method.call_trees.callees[0]
841
- assert_equal('Allocator#make_arrays', call_tree.target.full_name)
842
- assert_equal(400.0, call_tree.total_time)
843
- assert_equal(0.0, call_tree.wait_time)
844
- assert_equal(0.0, call_tree.self_time)
845
- assert_equal(400.0, call_tree.children_time)
846
-
847
- call_tree = method.call_trees.callees[1]
848
- assert_equal('Allocator#make_hashes', call_tree.target.full_name)
849
- assert_equal(800.0, call_tree.total_time)
850
- assert_equal(0.0, call_tree.wait_time)
851
- assert_equal(0.0, call_tree.self_time)
852
- assert_equal(800.0, call_tree.children_time)
853
-
854
- call_tree = method.call_trees.callees[2]
855
- assert_equal('Allocator#make_strings', call_tree.target.full_name)
856
- assert_equal(400.0, call_tree.total_time)
857
- assert_equal(0.0, call_tree.wait_time)
858
- assert_equal(40.0, call_tree.self_time)
859
- assert_equal(360.0, call_tree.children_time)
860
-
861
- # Method 2
862
- method = methods[2]
863
- assert_equal('Class#new', method.full_name)
864
- assert_equal(840.0, method.total_time)
865
- assert_equal(0.0, method.wait_time)
866
- assert_equal(840.0, method.self_time)
867
- assert_equal(0.0, method.children_time)
868
-
869
- assert_equal(2, method.call_trees.callers.length)
870
- call_tree = method.call_trees.callers[0]
871
- assert_equal('MeasureMemoryTest#test_memory', call_tree.parent.target.full_name)
872
- assert_equal(40.0, call_tree.total_time)
873
- assert_equal(0.0, call_tree.wait_time)
874
- assert_equal(40.0, call_tree.self_time)
875
- assert_equal(0.0, call_tree.children_time)
876
-
877
- call_tree = method.call_trees.callers[1]
878
- assert_equal('Allocator#make_hashes', call_tree.parent.target.full_name)
879
- assert_equal(800.0, call_tree.total_time)
880
- assert_equal(0.0, call_tree.wait_time)
881
- assert_equal(800.0, call_tree.self_time)
882
- assert_equal(0.0, call_tree.children_time)
883
-
884
- assert_equal(2, method.call_trees.callees.length)
885
- call_tree = method.call_trees.callees[0]
886
- assert_equal('BasicObject#initialize', call_tree.target.full_name)
887
- assert_equal(0.0, call_tree.total_time)
888
- assert_equal(0.0, call_tree.wait_time)
889
- assert_equal(0.0, call_tree.self_time)
890
- assert_equal(0.0, call_tree.children_time)
891
-
892
- call_tree = method.call_trees.callees[1]
893
- assert_equal('Hash#initialize', call_tree.target.full_name)
894
- assert_equal(0.0, call_tree.total_time)
895
- assert_equal(0.0, call_tree.wait_time)
896
- assert_equal(0.0, call_tree.self_time)
897
- assert_equal(0.0, call_tree.children_time)
898
-
899
- # Method 3
900
- method = methods[3]
901
- assert_equal('Allocator#make_hashes', method.full_name)
902
- assert_equal(800.0, method.total_time)
903
- assert_equal(0.0, method.wait_time)
904
- assert_equal(0.0, method.self_time)
905
- assert_equal(800.0, method.children_time)
906
-
907
- assert_equal(1, method.call_trees.callers.length)
908
- call_tree = method.call_trees.callers[0]
909
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
910
- assert_equal(800.0, call_tree.total_time)
911
- assert_equal(0.0, call_tree.wait_time)
912
- assert_equal(0.0, call_tree.self_time)
913
- assert_equal(800.0, call_tree.children_time)
914
-
915
- assert_equal(1, method.call_trees.callees.length)
916
- call_tree = method.call_trees.callees[0]
917
- assert_equal('Class#new', call_tree.target.full_name)
918
- assert_equal(800.0, call_tree.total_time)
919
- assert_equal(0.0, call_tree.wait_time)
920
- assert_equal(800.0, call_tree.self_time)
921
- assert_equal(0.0, call_tree.children_time)
922
-
923
- # Method 4
924
- method = methods[4]
925
- assert_equal('Allocator#make_strings', method.full_name)
926
- assert_equal(400.0, method.total_time)
927
- assert_equal(0.0, method.wait_time)
928
- assert_equal(40.0, method.self_time)
929
- assert_equal(360.0, method.children_time)
930
-
931
- assert_equal(1, method.call_trees.callers.length)
932
- call_tree = method.call_trees.callers[0]
933
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
934
- assert_equal(400.0, call_tree.total_time)
935
- assert_equal(0.0, call_tree.wait_time)
936
- assert_equal(40.0, call_tree.self_time)
937
- assert_equal(360.0, call_tree.children_time)
938
-
939
- assert_equal(2, method.call_trees.callees.length)
940
- call_tree = method.call_trees.callees[0]
941
- assert_equal('String#*', call_tree.target.full_name)
942
- assert_equal(160.0, call_tree.total_time)
943
- assert_equal(0.0, call_tree.wait_time)
944
- assert_equal(160.0, call_tree.self_time)
945
- assert_equal(0.0, call_tree.children_time)
946
-
947
- call_tree = method.call_trees.callees[1]
948
- assert_equal('<Class::String>#new', call_tree.target.full_name)
949
- assert_equal(200.0, call_tree.total_time)
950
- assert_equal(0.0, call_tree.wait_time)
951
- assert_equal(40.0, call_tree.self_time)
952
- assert_equal(160.0, call_tree.children_time)
953
-
954
- # Method 5
955
- method = methods[5]
956
- assert_equal('Allocator#make_arrays', method.full_name)
957
- assert_equal(400.0, method.total_time)
958
- assert_equal(0.0, method.wait_time)
959
- assert_equal(0.0, method.self_time)
960
- assert_equal(400.0, method.children_time)
961
-
962
- assert_equal(1, method.call_trees.callers.length)
963
- call_tree = method.call_trees.callers[0]
964
- assert_equal('Allocator#run', call_tree.parent.target.full_name)
965
- assert_equal(400.0, call_tree.total_time)
966
- assert_equal(0.0, call_tree.wait_time)
967
- assert_equal(0.0, call_tree.self_time)
968
- assert_equal(400.0, call_tree.children_time)
969
-
970
- assert_equal(1, method.call_trees.callees.length)
971
- call_tree = method.call_trees.callees[0]
972
- assert_equal('Integer#times', call_tree.target.full_name)
973
- assert_equal(400.0, call_tree.total_time)
974
- assert_equal(0.0, call_tree.wait_time)
975
- assert_equal(0.0, call_tree.self_time)
976
- assert_equal(400.0, call_tree.children_time)
977
-
978
- # Method 6
979
- method = methods[6]
980
- assert_equal('Integer#times', method.full_name)
981
- assert_equal(400.0, method.total_time)
982
- assert_equal(0.0, method.wait_time)
983
- assert_equal(0.0, method.self_time)
984
- assert_equal(400.0, method.children_time)
985
-
986
- assert_equal(1, method.call_trees.callers.length)
987
- call_tree = method.call_trees.callers[0]
988
- assert_equal('Allocator#make_arrays', call_tree.parent.target.full_name)
989
- assert_equal(400.0, call_tree.total_time)
990
- assert_equal(0.0, call_tree.wait_time)
991
- assert_equal(0.0, call_tree.self_time)
992
- assert_equal(400.0, call_tree.children_time)
993
-
994
- assert_equal(3, method.call_trees.callees.length)
995
-
996
- call_tree = method.call_trees.callees[0]
997
- assert_equal('Integer#<', call_tree.target.full_name)
998
- assert_equal(0, call_tree.total_time)
999
- assert_equal(0, call_tree.wait_time)
1000
- assert_equal(0, call_tree.self_time)
1001
- assert_equal(0, call_tree.children_time)
1002
-
1003
- call_tree = method.call_trees.callees[1]
1004
- assert_equal('<Class::Array>#new', call_tree.target.full_name)
1005
- assert_equal(400, call_tree.total_time)
1006
- assert_equal(0, call_tree.wait_time)
1007
- assert_equal(400, call_tree.self_time)
1008
- assert_equal(0, call_tree.children_time)
1009
-
1010
- call_tree = method.call_trees.callees[2]
1011
- assert_equal('Integer#succ', call_tree.target.full_name)
1012
- assert_equal(0, call_tree.total_time)
1013
- assert_equal(0, call_tree.wait_time)
1014
- assert_equal(0, call_tree.self_time)
1015
- assert_equal(0, call_tree.children_time)
1016
-
1017
- # Method 7
1018
- method = methods[7]
1019
- assert_equal('<Class::Array>#new', method.full_name)
1020
- assert_equal(400.0, method.total_time)
1021
- assert_equal(0.0, method.wait_time)
1022
- assert_equal(400.0, method.self_time)
1023
- assert_equal(0.0, method.children_time)
1024
-
1025
- assert_equal(1, method.call_trees.callers.length)
1026
- call_tree = method.call_trees.callers[0]
1027
- assert_equal('Integer#times', call_tree.parent.target.full_name)
1028
- assert_equal(400.0, call_tree.total_time)
1029
- assert_equal(0.0, call_tree.wait_time)
1030
- assert_equal(400.0, call_tree.self_time)
1031
- assert_equal(0.0, call_tree.children_time)
1032
-
1033
- assert_equal(1, method.call_trees.callees.length)
1034
- call_tree = method.call_trees.callees[0]
1035
- assert_equal('Array#initialize', call_tree.target.full_name)
1036
- assert_equal(0.0, call_tree.total_time)
1037
- assert_equal(0.0, call_tree.wait_time)
1038
- assert_equal(0.0, call_tree.self_time)
1039
- assert_equal(0.0, call_tree.children_time)
1040
-
1041
- # Method 8
1042
- method = methods[8]
1043
- assert_equal('<Class::String>#new', method.full_name)
1044
- assert_equal(200, method.total_time)
1045
- assert_equal(0, method.wait_time)
1046
- assert_equal(40, method.self_time)
1047
- assert_equal(160, method.children_time)
1048
-
1049
- assert_equal(1, method.call_trees.callers.length)
1050
- call_tree = method.call_trees.callers[0]
1051
- assert_equal('Allocator#make_strings', call_tree.parent.target.full_name)
1052
- assert_equal(200, call_tree.total_time)
1053
- assert_equal(0, call_tree.wait_time)
1054
- assert_equal(40, call_tree.self_time)
1055
- assert_equal(160, call_tree.children_time)
1056
-
1057
- assert_equal(1, method.call_trees.callees.length)
1058
-
1059
- call_tree = method.call_trees.callees[0]
1060
- assert_equal('String#initialize', call_tree.target.full_name)
1061
- assert_equal(160, call_tree.total_time)
1062
- assert_equal(0, call_tree.wait_time)
1063
- assert_equal(160, call_tree.self_time)
1064
- assert_equal(0, call_tree.children_time)
1065
-
1066
- # Method 9
1067
- method = methods[9]
1068
- assert_equal('String#*', method.full_name)
1069
- assert_equal(160, method.total_time)
1070
- assert_equal(0, method.wait_time)
1071
- assert_equal(160, method.self_time)
1072
- assert_equal(0, method.children_time)
1073
-
1074
- assert_equal(1, method.call_trees.callers.length)
1075
- call_tree = method.call_trees.callers[0]
1076
- assert_equal('Allocator#make_strings', call_tree.parent.target.full_name)
1077
- assert_equal(160, call_tree.total_time)
1078
- assert_equal(0, call_tree.wait_time)
1079
- assert_equal(160, call_tree.self_time)
1080
- assert_equal(0, call_tree.children_time)
1081
-
1082
- assert_equal(0, method.call_trees.callees.length)
1083
-
1084
- # Method 10
1085
- method = methods[10]
1086
- assert_equal('String#initialize', method.full_name)
1087
- assert_equal(160, method.total_time)
1088
- assert_equal(0, method.wait_time)
1089
- assert_equal(160, method.self_time)
1090
- assert_equal(0, method.children_time)
1091
-
1092
- assert_equal(1, method.call_trees.callers.length)
1093
- call_tree = method.call_trees.callers[0]
1094
- assert_equal('<Class::String>#new', call_tree.parent.target.full_name)
1095
- assert_equal(160, call_tree.total_time)
1096
- assert_equal(0, call_tree.wait_time)
1097
- assert_equal(160, call_tree.self_time)
1098
- assert_equal(0, call_tree.children_time)
1099
-
1100
- assert_equal(0, method.call_trees.callees.length)
1101
-
1102
- # Method 11
1103
- method = methods[11]
1104
- assert_equal('BasicObject#initialize', method.full_name)
1105
- assert_equal(0, method.total_time)
1106
- assert_equal(0, method.wait_time)
1107
- assert_equal(0, method.self_time)
1108
- assert_equal(0, method.children_time)
1109
-
1110
- assert_equal(1, method.call_trees.callers.length)
1111
- call_tree = method.call_trees.callers[0]
1112
- assert_equal('Class#new', call_tree.parent.target.full_name)
1113
- assert_equal(0, call_tree.total_time)
1114
- assert_equal(0, call_tree.wait_time)
1115
- assert_equal(0, call_tree.self_time)
1116
- assert_equal(0, call_tree.children_time)
1117
-
1118
- assert_equal(0, method.call_trees.callees.length)
1119
-
1120
- # Method 12
1121
- method = methods[12]
1122
- assert_equal('Integer#succ', method.full_name)
1123
- assert_equal(0, method.total_time)
1124
- assert_equal(0, method.wait_time)
1125
- assert_equal(0, method.self_time)
1126
- assert_equal(0, method.children_time)
1127
-
1128
- assert_equal(1, method.call_trees.callers.length)
1129
- call_tree = method.call_trees.callers[0]
1130
- assert_equal('Integer#times', call_tree.parent.target.full_name)
1131
- assert_equal(0, call_tree.total_time)
1132
- assert_equal(0, call_tree.wait_time)
1133
- assert_equal(0, call_tree.self_time)
1134
- assert_equal(0, call_tree.children_time)
1135
-
1136
- assert_equal(0, method.call_trees.callees.length)
1137
-
1138
- # Method 13
1139
- method = methods[13]
1140
- assert_equal('Integer#<', method.full_name)
1141
- assert_equal(0, method.total_time)
1142
- assert_equal(0, method.wait_time)
1143
- assert_equal(0, method.self_time)
1144
- assert_equal(0, method.children_time)
1145
-
1146
- assert_equal(1, method.call_trees.callers.length)
1147
- call_tree = method.call_trees.callers[0]
1148
- assert_equal('Integer#times', call_tree.parent.target.full_name)
1149
- assert_equal(0, call_tree.total_time)
1150
- assert_equal(0, call_tree.wait_time)
1151
- assert_equal(0, call_tree.self_time)
1152
- assert_equal(0, call_tree.children_time)
1153
-
1154
- assert_equal(0, method.call_trees.callees.length)
1155
-
1156
- # Method 14
1157
- method = methods[14]
1158
- assert_equal('Hash#initialize', method.full_name)
1159
- assert_equal(0.0, method.total_time)
1160
- assert_equal(0.0, method.wait_time)
1161
- assert_equal(0.0, method.self_time)
1162
- assert_equal(0.0, method.children_time)
1163
-
1164
- assert_equal(1, method.call_trees.callers.length)
1165
- call_tree = method.call_trees.callers[0]
1166
- assert_equal('Class#new', call_tree.parent.target.full_name)
1167
- assert_equal(0.0, call_tree.total_time)
1168
- assert_equal(0.0, call_tree.wait_time)
1169
- assert_equal(0.0, call_tree.self_time)
1170
- assert_equal(0.0, call_tree.children_time)
1171
-
1172
- assert_equal(0, method.call_trees.callees.length)
1173
-
1174
- # Method 15
1175
- method = methods[15]
1176
- assert_equal('Array#initialize', method.full_name)
1177
- assert_equal(0.0, method.total_time)
1178
- assert_equal(0.0, method.wait_time)
1179
- assert_equal(0.0, method.self_time)
1180
- assert_equal(0.0, method.children_time)
1181
-
1182
- assert_equal(1, method.call_trees.callers.length)
1183
- call_tree = method.call_trees.callers[0]
1184
- assert_equal('<Class::Array>#new', call_tree.parent.target.full_name)
1185
- assert_equal(0.0, call_tree.total_time)
1186
- assert_equal(0.0, call_tree.wait_time)
1187
- assert_equal(0.0, call_tree.self_time)
1188
- assert_equal(0.0, call_tree.children_time)
1189
-
1190
- assert_equal(0.0, method.call_trees.callees.length)
1191
- end
1192
- end
1193
- end