1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
= Flat Profiles
Flat profiles show the total amount of time spent in each method.
As an example, here is the output from running printers_test.rb.
Measure Mode: wall_time
Thread ID: 70355159212340
Fiber ID: 70355171633140
Total: 0.060485
Sort by: self_time
%self total self wait child calls name
97.07 0.059 0.059 0.000 0.000 1001 Integer#upto
0.92 0.059 0.001 0.000 0.059 1000 Object#is_prime
0.66 0.060 0.000 0.000 0.059 1 Array#select
0.59 0.000 0.000 0.000 0.000 1000 Kernel#rand
0.50 0.001 0.000 0.000 0.000 1 Array#each_index
0.20 0.000 0.000 0.000 0.000 1000 Kernel#respond_to_missing?
0.01 0.000 0.000 0.000 0.000 1 Object#find_largest
0.01 0.060 0.000 0.000 0.060 1 PrintersTest#setup
0.01 0.060 0.000 0.000 0.060 1 Object#find_primes
0.01 0.000 0.000 0.000 0.000 1 Class#new
0.01 0.060 0.000 0.000 0.060 1 Object#run_primes
0.00 0.000 0.000 0.000 0.000 1 Array#first
0.00 0.001 0.000 0.000 0.001 1 Object#make_random_array
0.00 0.000 0.000 0.000 0.000 1 Array#initialize
All values are in seconds.
The columns are:
%self - The percentage of time spent in this method, derived from self_time/total_time
total - The time spent in this method and its children.
self - The time spent in this method.
wait - amount of time this method waited for other threads
child - The time spent in this method's children.
calls - The number of times this method was called.
name - The name of the method.
Methods are sorted based on %self, therefore the methods that execute the longest are listed
first.
For example, wee can see that Integer#upto took the most time, 0.059
seconds. Method Object#is_prime calls this method, so the 0.59
seconds appear as child time for Object#is_prime.
The interpretation of method names is:
* MyObject#test - An instance method "test" of the class "MyObject"
* <Object:MyObject>#test - The <> characters indicate a singleton method on a singleton class.
|