ruby-prof 1.4.3 → 1.4.4

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