ruby-prof 1.1.0-x64-mingw32 → 1.4.2-x64-mingw32
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.
- checksums.yaml +4 -4
- data/CHANGES +48 -1
- data/Rakefile +2 -14
- data/bin/ruby-prof +100 -152
- data/ext/ruby_prof/extconf.rb +8 -28
- data/ext/ruby_prof/rp_aggregate_call_tree.c +59 -0
- data/ext/ruby_prof/rp_aggregate_call_tree.h +13 -0
- data/ext/ruby_prof/rp_allocation.c +67 -59
- data/ext/ruby_prof/rp_allocation.h +3 -3
- data/ext/ruby_prof/rp_call_tree.c +369 -0
- data/ext/ruby_prof/rp_call_tree.h +43 -0
- data/ext/ruby_prof/rp_call_trees.c +288 -0
- data/ext/ruby_prof/rp_call_trees.h +28 -0
- data/ext/ruby_prof/rp_measure_allocations.c +12 -14
- data/ext/ruby_prof/rp_measure_process_time.c +12 -14
- data/ext/ruby_prof/rp_measure_wall_time.c +17 -15
- data/ext/ruby_prof/rp_measurement.c +47 -40
- data/ext/ruby_prof/rp_measurement.h +7 -7
- data/ext/ruby_prof/rp_method.c +116 -255
- data/ext/ruby_prof/rp_method.h +31 -39
- data/ext/ruby_prof/rp_profile.c +316 -303
- data/ext/ruby_prof/rp_profile.h +1 -3
- data/ext/ruby_prof/rp_stack.c +122 -106
- data/ext/ruby_prof/rp_stack.h +17 -20
- data/ext/ruby_prof/rp_thread.c +136 -111
- data/ext/ruby_prof/rp_thread.h +12 -9
- data/ext/ruby_prof/ruby_prof.c +27 -23
- data/ext/ruby_prof/ruby_prof.h +9 -0
- data/ext/ruby_prof/vc/ruby_prof.sln +8 -0
- data/ext/ruby_prof/vc/ruby_prof.vcxproj +22 -7
- data/lib/2.7/ruby_prof.so +0 -0
- data/lib/ruby-prof.rb +5 -5
- data/lib/ruby-prof/assets/call_stack_printer.html.erb +4 -7
- data/lib/ruby-prof/assets/graph_printer.html.erb +5 -6
- data/lib/ruby-prof/{call_info.rb → call_tree.rb} +6 -6
- data/lib/ruby-prof/call_tree_visitor.rb +36 -0
- data/lib/ruby-prof/compatibility.rb +0 -10
- data/lib/ruby-prof/measurement.rb +5 -2
- data/lib/ruby-prof/method_info.rb +3 -15
- data/lib/ruby-prof/printers/abstract_printer.rb +12 -2
- data/lib/ruby-prof/printers/call_info_printer.rb +12 -10
- data/lib/ruby-prof/printers/call_stack_printer.rb +20 -22
- data/lib/ruby-prof/printers/call_tree_printer.rb +1 -1
- data/lib/ruby-prof/printers/dot_printer.rb +3 -3
- data/lib/ruby-prof/printers/flat_printer.rb +3 -2
- data/lib/ruby-prof/printers/graph_printer.rb +4 -5
- data/lib/ruby-prof/printers/multi_printer.rb +2 -2
- data/lib/ruby-prof/profile.rb +8 -4
- data/lib/ruby-prof/rack.rb +51 -127
- data/lib/ruby-prof/thread.rb +3 -18
- data/lib/ruby-prof/version.rb +1 -1
- data/ruby-prof.gemspec +7 -0
- data/test/alias_test.rb +42 -45
- data/test/basic_test.rb +0 -86
- data/test/{call_info_visitor_test.rb → call_tree_visitor_test.rb} +6 -5
- data/test/call_trees_test.rb +66 -0
- data/test/exclude_methods_test.rb +17 -12
- data/test/fiber_test.rb +95 -39
- data/test/gc_test.rb +36 -42
- data/test/inverse_call_tree_test.rb +175 -0
- data/test/line_number_test.rb +67 -70
- data/test/marshal_test.rb +7 -13
- data/test/measure_allocations_test.rb +224 -234
- data/test/measure_allocations_trace_test.rb +224 -234
- data/test/measure_memory_trace_test.rb +814 -469
- data/test/measure_process_time_test.rb +0 -64
- data/test/measure_times.rb +2 -0
- data/test/measure_wall_time_test.rb +34 -58
- data/test/pause_resume_test.rb +19 -10
- data/test/prime.rb +1 -3
- data/test/prime_script.rb +6 -0
- data/test/printer_call_stack_test.rb +0 -1
- data/test/printer_call_tree_test.rb +0 -1
- data/test/printer_flat_test.rb +61 -30
- data/test/printer_graph_html_test.rb +0 -1
- data/test/printer_graph_test.rb +3 -4
- data/test/printers_test.rb +2 -2
- data/test/printing_recursive_graph_test.rb +1 -1
- data/test/profile_test.rb +16 -0
- data/test/rack_test.rb +0 -64
- data/test/recursive_test.rb +50 -54
- data/test/start_stop_test.rb +19 -19
- data/test/test_helper.rb +6 -17
- data/test/thread_test.rb +11 -11
- data/test/unique_call_path_test.rb +25 -95
- metadata +22 -11
- data/ext/ruby_prof/rp_call_info.c +0 -271
- data/ext/ruby_prof/rp_call_info.h +0 -35
- data/lib/2.6.5/ruby_prof.so +0 -0
- data/lib/ruby-prof/call_info_visitor.rb +0 -38
- data/test/parser_timings.rb +0 -24
@@ -23,10 +23,6 @@ class MeasureProcessTimeTest < TestCase
|
|
23
23
|
thread = result.threads.first
|
24
24
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
25
25
|
|
26
|
-
root_methods = thread.root_methods
|
27
|
-
assert_equal(1, root_methods.count)
|
28
|
-
assert_equal("MeasureProcessTimeTest#test_class_methods_sleep", root_methods.first.full_name)
|
29
|
-
|
30
26
|
methods = result.threads.first.methods.sort.reverse
|
31
27
|
assert_equal(3, methods.length)
|
32
28
|
|
@@ -66,10 +62,6 @@ class MeasureProcessTimeTest < TestCase
|
|
66
62
|
thread = result.threads.first
|
67
63
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
68
64
|
|
69
|
-
root_methods = thread.root_methods
|
70
|
-
assert_equal(1, root_methods.count)
|
71
|
-
assert_equal("MeasureProcessTimeTest#test_class_methods_sleep_threaded", root_methods.first.full_name)
|
72
|
-
|
73
65
|
methods = result.threads.first.methods.sort.reverse
|
74
66
|
assert_equal(4, methods.length)
|
75
67
|
|
@@ -105,10 +97,6 @@ class MeasureProcessTimeTest < TestCase
|
|
105
97
|
thread = result.threads.last
|
106
98
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
107
99
|
|
108
|
-
root_methods = thread.root_methods
|
109
|
-
assert_equal(1, root_methods.count)
|
110
|
-
assert_equal("MeasureProcessTimeTest#test_class_methods_sleep_threaded", root_methods.first.full_name)
|
111
|
-
|
112
100
|
methods = result.threads.first.methods.sort.reverse
|
113
101
|
assert_equal(4, methods.length)
|
114
102
|
|
@@ -146,10 +134,6 @@ class MeasureProcessTimeTest < TestCase
|
|
146
134
|
thread = result.threads.first
|
147
135
|
assert_in_delta(0.08, thread.total_time, 0.05)
|
148
136
|
|
149
|
-
root_methods = thread.root_methods
|
150
|
-
assert_equal(1, root_methods.count)
|
151
|
-
assert_equal("MeasureProcessTimeTest#test_class_methods_busy", root_methods.first.full_name)
|
152
|
-
|
153
137
|
methods = result.threads.first.methods.sort.reverse
|
154
138
|
assert_equal(3, methods.length)
|
155
139
|
|
@@ -189,10 +173,6 @@ class MeasureProcessTimeTest < TestCase
|
|
189
173
|
thread = result.threads.first
|
190
174
|
assert_in_delta(0.1, thread.total_time, 0.05)
|
191
175
|
|
192
|
-
root_methods = thread.root_methods
|
193
|
-
assert_equal(1, root_methods.count)
|
194
|
-
assert_equal("MeasureProcessTimeTest#test_class_methods_busy_threaded", root_methods.first.full_name)
|
195
|
-
|
196
176
|
methods = result.threads.first.methods.sort.reverse
|
197
177
|
assert_equal(4, methods.length)
|
198
178
|
|
@@ -228,10 +208,6 @@ class MeasureProcessTimeTest < TestCase
|
|
228
208
|
thread = result.threads.last
|
229
209
|
assert_in_delta(0.1, thread.total_time, 0.05)
|
230
210
|
|
231
|
-
root_methods = thread.root_methods
|
232
|
-
assert_equal(1, root_methods.count)
|
233
|
-
assert_equal("MeasureProcessTimeTest#test_class_methods_busy_threaded", root_methods.first.full_name)
|
234
|
-
|
235
211
|
methods = result.threads.first.methods.sort.reverse
|
236
212
|
assert_equal(4, methods.length)
|
237
213
|
|
@@ -269,10 +245,6 @@ class MeasureProcessTimeTest < TestCase
|
|
269
245
|
thread = result.threads.first
|
270
246
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
271
247
|
|
272
|
-
root_methods = thread.root_methods
|
273
|
-
assert_equal(1, root_methods.count)
|
274
|
-
assert_equal("MeasureProcessTimeTest#test_instance_methods_sleep", root_methods.first.full_name)
|
275
|
-
|
276
248
|
methods = result.threads.first.methods.sort.reverse
|
277
249
|
assert_equal(5, methods.length)
|
278
250
|
|
@@ -378,10 +350,6 @@ class MeasureProcessTimeTest < TestCase
|
|
378
350
|
thread = result.threads.first
|
379
351
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
380
352
|
|
381
|
-
root_methods = thread.root_methods
|
382
|
-
assert_equal(1, root_methods.count)
|
383
|
-
assert_equal("MeasureProcessTimeTest#test_instance_methods_sleep_threaded", root_methods.first.full_name)
|
384
|
-
|
385
353
|
methods = result.threads.first.methods.sort.reverse
|
386
354
|
assert_equal(4, methods.length)
|
387
355
|
|
@@ -417,10 +385,6 @@ class MeasureProcessTimeTest < TestCase
|
|
417
385
|
thread = result.threads.last
|
418
386
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
419
387
|
|
420
|
-
root_methods = thread.root_methods
|
421
|
-
assert_equal(1, root_methods.count)
|
422
|
-
assert_equal("MeasureProcessTimeTest#test_instance_methods_sleep_threaded", root_methods.first.full_name)
|
423
|
-
|
424
388
|
methods = result.threads.first.methods.sort.reverse
|
425
389
|
assert_equal(4, methods.length)
|
426
390
|
|
@@ -472,10 +436,6 @@ class MeasureProcessTimeTest < TestCase
|
|
472
436
|
thread = result.threads.first
|
473
437
|
assert_in_delta(0.2, thread.total_time, 0.05)
|
474
438
|
|
475
|
-
root_methods = thread.root_methods
|
476
|
-
assert_equal(1, root_methods.count)
|
477
|
-
assert_equal("MeasureProcessTimeTest#test_instance_methods_busy", root_methods.first.full_name)
|
478
|
-
|
479
439
|
methods = result.threads.first.methods.sort.reverse
|
480
440
|
assert_equal(5, methods.length)
|
481
441
|
|
@@ -581,10 +541,6 @@ class MeasureProcessTimeTest < TestCase
|
|
581
541
|
thread = result.threads.first
|
582
542
|
assert_in_delta(0.2, thread.total_time, 0.05)
|
583
543
|
|
584
|
-
root_methods = thread.root_methods
|
585
|
-
assert_equal(1, root_methods.count)
|
586
|
-
assert_equal("MeasureProcessTimeTest#test_instance_methods_busy_threaded", root_methods.first.full_name)
|
587
|
-
|
588
544
|
methods = result.threads.first.methods.sort.reverse
|
589
545
|
assert_equal(4, methods.length)
|
590
546
|
|
@@ -620,10 +576,6 @@ class MeasureProcessTimeTest < TestCase
|
|
620
576
|
thread = result.threads.last
|
621
577
|
assert_in_delta(0.2, thread.total_time, 0.05)
|
622
578
|
|
623
|
-
root_methods = thread.root_methods
|
624
|
-
assert_equal(1, root_methods.count)
|
625
|
-
assert_equal("MeasureProcessTimeTest#test_instance_methods_busy_threaded", root_methods.first.full_name)
|
626
|
-
|
627
579
|
methods = result.threads.first.methods.sort.reverse
|
628
580
|
assert_equal(4, methods.length)
|
629
581
|
|
@@ -675,10 +627,6 @@ class MeasureProcessTimeTest < TestCase
|
|
675
627
|
thread = result.threads.first
|
676
628
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
677
629
|
|
678
|
-
root_methods = thread.root_methods
|
679
|
-
assert_equal(1, root_methods.count)
|
680
|
-
assert_equal("MeasureProcessTimeTest#test_module_methods_sleep", root_methods.first.full_name)
|
681
|
-
|
682
630
|
methods = result.threads.first.methods.sort.reverse
|
683
631
|
assert_equal(3, methods.length)
|
684
632
|
|
@@ -713,10 +661,6 @@ class MeasureProcessTimeTest < TestCase
|
|
713
661
|
thread = result.threads.first
|
714
662
|
assert_in_delta(0.3, thread.total_time, 0.05)
|
715
663
|
|
716
|
-
root_methods = thread.root_methods
|
717
|
-
assert_equal(1, root_methods.count)
|
718
|
-
assert_equal("MeasureProcessTimeTest#test_module_methods_busy", root_methods.first.full_name)
|
719
|
-
|
720
664
|
methods = result.threads.first.methods.sort.reverse
|
721
665
|
assert_equal(3, methods.length)
|
722
666
|
|
@@ -751,10 +695,6 @@ class MeasureProcessTimeTest < TestCase
|
|
751
695
|
thread = result.threads.first
|
752
696
|
assert_in_delta(0.0, thread.total_time, 0.05)
|
753
697
|
|
754
|
-
root_methods = thread.root_methods
|
755
|
-
assert_equal(1, root_methods.count)
|
756
|
-
assert_equal("MeasureProcessTimeTest#test_module_instance_methods_sleep", root_methods.first.full_name)
|
757
|
-
|
758
698
|
methods = result.threads.first.methods.sort.reverse
|
759
699
|
assert_equal(5, methods.length)
|
760
700
|
|
@@ -803,10 +743,6 @@ class MeasureProcessTimeTest < TestCase
|
|
803
743
|
thread = result.threads.first
|
804
744
|
assert_in_delta(0.3, thread.total_time, 0.05)
|
805
745
|
|
806
|
-
root_methods = thread.root_methods
|
807
|
-
assert_equal(1, root_methods.count)
|
808
|
-
assert_equal("MeasureProcessTimeTest#test_module_instance_methods_busy", root_methods.first.full_name)
|
809
|
-
|
810
746
|
methods = result.threads.first.methods.sort.reverse
|
811
747
|
assert_equal(5, methods.length)
|
812
748
|
|
data/test/measure_times.rb
CHANGED
@@ -8,7 +8,6 @@ class MeasureWallTimeTest < TestCase
|
|
8
8
|
def setup
|
9
9
|
# Need to use wall time for this test due to the sleep calls
|
10
10
|
RubyProf::measure_mode = RubyProf::WALL_TIME
|
11
|
-
GC.start
|
12
11
|
end
|
13
12
|
|
14
13
|
def test_mode
|
@@ -24,10 +23,6 @@ class MeasureWallTimeTest < TestCase
|
|
24
23
|
thread = result.threads.first
|
25
24
|
assert_in_delta(0.1, thread.total_time, 0.03)
|
26
25
|
|
27
|
-
root_methods = thread.root_methods
|
28
|
-
assert_equal(1, root_methods.count)
|
29
|
-
assert_equal("MeasureWallTimeTest#test_class_methods", root_methods[0].full_name)
|
30
|
-
|
31
26
|
methods = result.threads.first.methods.sort.reverse
|
32
27
|
assert_equal(3, methods.length)
|
33
28
|
|
@@ -63,10 +58,6 @@ class MeasureWallTimeTest < TestCase
|
|
63
58
|
thread = result.threads.first
|
64
59
|
assert_in_delta(0.1, thread.total_time, 0.03)
|
65
60
|
|
66
|
-
root_methods = thread.root_methods
|
67
|
-
assert_equal(1, root_methods.count)
|
68
|
-
assert_equal("MeasureWallTimeTest#test_class_methods_threaded", root_methods[0].full_name)
|
69
|
-
|
70
61
|
methods = result.threads.first.methods.sort.reverse
|
71
62
|
assert_equal(4, methods.length)
|
72
63
|
|
@@ -98,10 +89,6 @@ class MeasureWallTimeTest < TestCase
|
|
98
89
|
thread = result.threads.last
|
99
90
|
assert_in_delta(0.1, thread.total_time, 0.03)
|
100
91
|
|
101
|
-
root_methods = thread.root_methods
|
102
|
-
assert_equal(1, root_methods.count)
|
103
|
-
assert_equal("MeasureWallTimeTest#test_class_methods_threaded", root_methods[0].full_name)
|
104
|
-
|
105
92
|
methods = result.threads.first.methods.sort.reverse
|
106
93
|
assert_equal(4, methods.length)
|
107
94
|
|
@@ -136,10 +123,6 @@ class MeasureWallTimeTest < TestCase
|
|
136
123
|
thread = result.threads.first
|
137
124
|
assert_in_delta(0.2, thread.total_time, 0.03)
|
138
125
|
|
139
|
-
root_methods = thread.root_methods
|
140
|
-
assert_equal(1, root_methods.count)
|
141
|
-
assert_equal("MeasureWallTimeTest#test_instance_methods", root_methods[0].full_name)
|
142
|
-
|
143
126
|
methods = result.threads.first.methods.sort.reverse
|
144
127
|
assert_equal(5, methods.length)
|
145
128
|
names = methods.map(&:full_name)
|
@@ -244,10 +227,6 @@ class MeasureWallTimeTest < TestCase
|
|
244
227
|
thread = result.threads.first
|
245
228
|
assert_in_delta(0.2, thread.total_time, 0.03)
|
246
229
|
|
247
|
-
root_methods = thread.root_methods
|
248
|
-
assert_equal(1, root_methods.count)
|
249
|
-
assert_equal("MeasureWallTimeTest#test_instance_methods_threaded", root_methods[0].full_name)
|
250
|
-
|
251
230
|
methods = result.threads.first.methods.sort.reverse
|
252
231
|
assert_equal(4, methods.length)
|
253
232
|
|
@@ -279,10 +258,6 @@ class MeasureWallTimeTest < TestCase
|
|
279
258
|
thread = result.threads.last
|
280
259
|
assert_in_delta(0.2, thread.total_time, 0.03)
|
281
260
|
|
282
|
-
root_methods = thread.root_methods
|
283
|
-
assert_equal(1, root_methods.count)
|
284
|
-
assert_equal("MeasureWallTimeTest#test_instance_methods_threaded", root_methods[0].full_name)
|
285
|
-
|
286
261
|
methods = result.threads.first.methods.sort.reverse
|
287
262
|
assert_equal(4, methods.length)
|
288
263
|
|
@@ -329,10 +304,6 @@ class MeasureWallTimeTest < TestCase
|
|
329
304
|
thread = result.threads.first
|
330
305
|
assert_in_delta(0.3, thread.total_time, 0.03)
|
331
306
|
|
332
|
-
root_methods = thread.root_methods
|
333
|
-
assert_equal(1, root_methods.count)
|
334
|
-
assert_equal("MeasureWallTimeTest#test_module_methods", root_methods[0].full_name)
|
335
|
-
|
336
307
|
methods = result.threads.first.methods.sort.reverse
|
337
308
|
assert_equal(3, methods.length)
|
338
309
|
|
@@ -362,10 +333,6 @@ class MeasureWallTimeTest < TestCase
|
|
362
333
|
thread = result.threads.first
|
363
334
|
assert_in_delta(0.3, thread.total_time, 0.03)
|
364
335
|
|
365
|
-
root_methods = thread.root_methods
|
366
|
-
assert_equal(1, root_methods.count)
|
367
|
-
assert_equal("MeasureWallTimeTest#test_module_instance_methods", root_methods[0].full_name)
|
368
|
-
|
369
336
|
methods = result.threads.first.methods.sort.reverse
|
370
337
|
assert_equal(5, methods.length)
|
371
338
|
names = methods.map(&:full_name)
|
@@ -407,10 +374,6 @@ class MeasureWallTimeTest < TestCase
|
|
407
374
|
thread = result.threads.first
|
408
375
|
assert_in_delta(0.3, thread.total_time, 0.03)
|
409
376
|
|
410
|
-
root_methods = thread.root_methods
|
411
|
-
assert_equal(1, root_methods.count)
|
412
|
-
assert_equal("MeasureWallTimeTest#test_singleton_methods", root_methods[0].full_name)
|
413
|
-
|
414
377
|
methods = result.threads.first.methods.sort.reverse
|
415
378
|
assert_equal(7, methods.length)
|
416
379
|
|
@@ -432,28 +395,41 @@ class MeasureWallTimeTest < TestCase
|
|
432
395
|
assert_in_delta(0.3, methods[2].self_time, 0.03)
|
433
396
|
assert_in_delta(0.0, methods[2].children_time, 0.03)
|
434
397
|
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
398
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7')
|
399
|
+
method = methods.detect {|a_method| a_method.full_name == '<Class::RubyProf::C3>#instance'}
|
400
|
+
assert_equal('<Class::RubyProf::C3>#instance', method.full_name)
|
401
|
+
assert_in_delta(0.0, method.total_time, 0.03)
|
402
|
+
assert_in_delta(0.0, method.wait_time, 0.03)
|
403
|
+
assert_in_delta(0.0, method.self_time, 0.03)
|
404
|
+
assert_in_delta(0.0, method.children_time, 0.03)
|
405
|
+
else
|
406
|
+
method = methods.detect {|a_method| a_method.full_name == 'Singleton::SingletonClassMethods#instance'}
|
407
|
+
assert_equal('Singleton::SingletonClassMethods#instance', method.full_name)
|
408
|
+
assert_in_delta(0.0, method.total_time, 0.03)
|
409
|
+
assert_in_delta(0.0, method.wait_time, 0.03)
|
410
|
+
assert_in_delta(0.0, method.self_time, 0.03)
|
411
|
+
assert_in_delta(0.0, method.children_time, 0.03)
|
412
|
+
end
|
440
413
|
|
441
|
-
|
442
|
-
|
443
|
-
assert_in_delta(0.0,
|
444
|
-
assert_in_delta(0.0,
|
445
|
-
assert_in_delta(0.0,
|
414
|
+
method = methods.detect {|a_method| a_method.full_name == 'Thread::Mutex#synchronize'}
|
415
|
+
assert_equal('Thread::Mutex#synchronize', method.full_name)
|
416
|
+
assert_in_delta(0.0, method.total_time, 0.03)
|
417
|
+
assert_in_delta(0.0, method.wait_time, 0.03)
|
418
|
+
assert_in_delta(0.0, method.self_time, 0.03)
|
419
|
+
assert_in_delta(0.0, method.children_time, 0.03)
|
420
|
+
|
421
|
+
method = methods.detect {|a_method| a_method.full_name == 'Class#new'}
|
422
|
+
assert_equal('Class#new', method.full_name)
|
423
|
+
assert_in_delta(0.0, method.total_time, 0.03)
|
424
|
+
assert_in_delta(0.0, method.wait_time, 0.03)
|
425
|
+
assert_in_delta(0.0, method.self_time, 0.03)
|
426
|
+
assert_in_delta(0.0, method.children_time, 0.03)
|
446
427
|
|
447
|
-
|
448
|
-
|
449
|
-
assert_in_delta(0.0,
|
450
|
-
assert_in_delta(0.0,
|
451
|
-
assert_in_delta(0.0,
|
452
|
-
|
453
|
-
assert_equal('BasicObject#initialize', methods[6].full_name)
|
454
|
-
assert_in_delta(0.0, methods[6].total_time, 0.03)
|
455
|
-
assert_in_delta(0.0, methods[6].wait_time, 0.03)
|
456
|
-
assert_in_delta(0.0, methods[6].self_time, 0.03)
|
457
|
-
assert_in_delta(0.0, methods[6].children_time, 0.03)
|
428
|
+
method = methods.detect {|a_method| a_method.full_name == 'BasicObject#initialize'}
|
429
|
+
assert_equal('BasicObject#initialize', method.full_name)
|
430
|
+
assert_in_delta(0.0, method.total_time, 0.03)
|
431
|
+
assert_in_delta(0.0, method.wait_time, 0.03)
|
432
|
+
assert_in_delta(0.0, method.self_time, 0.03)
|
433
|
+
assert_in_delta(0.0, method.children_time, 0.03)
|
458
434
|
end
|
459
435
|
end
|
data/test/pause_resume_test.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
# encoding: UTF-8
|
3
3
|
|
4
4
|
require File.expand_path('../test_helper', __FILE__)
|
5
|
+
require_relative 'measure_times'
|
5
6
|
|
6
7
|
class PauseResumeTest < TestCase
|
7
8
|
def setup
|
@@ -43,15 +44,15 @@ class PauseResumeTest < TestCase
|
|
43
44
|
assert_equal('PauseResumeTest#test_pause_resume', methods[2].full_name)
|
44
45
|
|
45
46
|
# Check times
|
46
|
-
assert_in_delta(0.
|
47
|
+
assert_in_delta(0.22, methods[0].total_time, 0.02)
|
47
48
|
assert_in_delta(0, methods[0].wait_time, 0.02)
|
48
49
|
assert_in_delta(0, methods[0].self_time, 0.02)
|
49
50
|
|
50
|
-
assert_in_delta(0.
|
51
|
+
assert_in_delta(0.22, methods[1].total_time, 0.02)
|
51
52
|
assert_in_delta(0, methods[1].wait_time, 0.02)
|
52
|
-
assert_in_delta(0.
|
53
|
+
assert_in_delta(0.22, methods[1].self_time, 0.02)
|
53
54
|
|
54
|
-
assert_in_delta(0.
|
55
|
+
assert_in_delta(0.22, methods[2].total_time, 0.02)
|
55
56
|
assert_in_delta(0, methods[2].wait_time, 0.02)
|
56
57
|
assert_in_delta(0, methods[2].self_time, 0.02)
|
57
58
|
end
|
@@ -70,9 +71,9 @@ class PauseResumeTest < TestCase
|
|
70
71
|
method_1c
|
71
72
|
|
72
73
|
result = profile.stop
|
73
|
-
assert_in_delta(0.
|
74
|
+
assert_in_delta(0.65, result.threads[0].methods.select {|m| m.full_name =~ /test_pause_resume_1$/}[0].total_time, 0.05)
|
74
75
|
end
|
75
|
-
def method_1a; sleep 0.
|
76
|
+
def method_1a; sleep 0.22 end
|
76
77
|
def method_1b; sleep 1 end
|
77
78
|
def method_1c; sleep 0.4 end
|
78
79
|
|
@@ -90,7 +91,7 @@ class PauseResumeTest < TestCase
|
|
90
91
|
result = profile.stop
|
91
92
|
assert_in_delta(0.6, result.threads[0].methods.select{|m| m.full_name =~ /test_pause_resume_2$/}[0].total_time, 0.05)
|
92
93
|
end
|
93
|
-
def method_2a; sleep 0.
|
94
|
+
def method_2a; sleep 0.22 end
|
94
95
|
def method_2b(profile); sleep 0.5; profile.resume; sleep 0.4 end
|
95
96
|
|
96
97
|
# pause in child frame, resume in parent
|
@@ -105,10 +106,18 @@ class PauseResumeTest < TestCase
|
|
105
106
|
method_3b
|
106
107
|
|
107
108
|
result = profile.stop
|
108
|
-
assert_in_delta(0.
|
109
|
+
assert_in_delta(0.65, result.threads[0].methods.select{|m| m.full_name =~ /test_pause_resume_3$/}[0].total_time, 0.05)
|
110
|
+
end
|
111
|
+
|
112
|
+
def method_3a(profile)
|
113
|
+
sleep 0.22
|
114
|
+
profile.pause
|
115
|
+
sleep 0.5
|
116
|
+
end
|
117
|
+
|
118
|
+
def method_3b
|
119
|
+
sleep 0.4
|
109
120
|
end
|
110
|
-
def method_3a(profile); sleep 0.2; profile.pause; sleep 0.5 end
|
111
|
-
def method_3b; sleep 0.4 end
|
112
121
|
|
113
122
|
def test_pause_seq
|
114
123
|
profile = RubyProf::Profile.new
|
data/test/prime.rb
CHANGED
@@ -4,8 +4,6 @@
|
|
4
4
|
#
|
5
5
|
# Source from http://people.cs.uchicago.edu/~bomb154/154/maclabs/profilers-lab/
|
6
6
|
|
7
|
-
require File.expand_path('../test_helper', __FILE__)
|
8
|
-
|
9
7
|
def make_random_array(length, maxnum)
|
10
8
|
result = Array.new(length)
|
11
9
|
result.each_index do |i|
|
@@ -44,7 +42,7 @@ def find_largest(primes)
|
|
44
42
|
largest
|
45
43
|
end
|
46
44
|
|
47
|
-
def run_primes(length=10, maxnum=
|
45
|
+
def run_primes(length=10, maxnum=1_000)
|
48
46
|
# Create random numbers
|
49
47
|
random_array = make_random_array(length, maxnum)
|
50
48
|
|