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