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 51 52 53 54 55
|
= 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.
Thread ID: 21277412
%self cumulative total self children calls self/call total/call name
46.34 4.06 8.72 4.06 4.66 501 0.01 0.02 Integer#upto
23.89 6.16 2.09 2.09 0.00 61 0.03 0.03 Kernel.sleep
15.12 7.48 1.33 1.33 0.00 250862 0.00 0.00 Fixnum#%
14.13 8.72 1.24 1.24 0.00 250862 0.00 0.00 Fixnum#==
0.18 8.74 0.02 0.02 0.00 1 0.02 0.02 Array#each_index
0.17 8.75 6.64 0.01 6.63 500 0.00 0.01 Object#is_prime
0.17 8.77 6.66 0.01 6.64 1 0.01 6.66 Array#select
0.00 8.77 0.00 0.00 0.00 501 0.00 0.00 Fixnum#-
0.00 8.77 0.00 0.00 0.00 1 0.00 0.00 Array#first
0.00 8.77 0.00 0.00 0.00 1 0.00 0.00 Array#length
0.00 8.77 0.00 0.00 0.00 1 0.00 0.00 Array#initialize
0.00 8.77 8.77 0.00 8.77 1 0.00 8.77 Object#run_primes
0.00 8.77 0.00 0.00 0.00 1 0.00 0.00 Integer#to_int
0.00 8.77 6.66 0.00 6.66 1 0.00 6.66 Object#find_primes
0.00 8.77 2.09 0.00 2.09 1 0.00 2.09 Object#find_largest
0.00 8.77 0.02 0.00 0.02 1 0.00 0.02 Object#make_random_array
0.00 8.77 0.00 0.00 0.00 1 0.00 0.00 Class#new
0.00 8.77 0.00 0.00 0.00 500 0.00 0.00 Array#[]=
0.00 8.77 0.00 0.00 0.00 61 0.00 0.00 Fixnum#>
0.00 8.77 0.00 0.00 0.00 61 0.00 0.00 Array#[]
0.00 8.77 8.77 0.00 8.77 1 0.00 8.77 #toplevel
0.00 8.77 0.00 0.00 0.00 500 0.00 0.00 Kernel.rand
All values are in seconds.
The columns are:
%self - The percentage of time spent in this method, derived from self_time/total_time
cumulative - The sum of the time spent in this method and all the methods listed above it.
total - The time spent in this method and its children.
self - The time spent in this method.
children - The time spent in this method's children.
calls - The number of times this method was called.
self/call - The average time spent per call in this method.
total/call - The average time spent per call in this method and its children.
name - The name of the method.
Methods are sorted based on %self, therefore the methods that execute the longest are listed
first.
The interpretation of method names is:
* #toplevel - The root method that calls all other methods
* MyObject#test - An instance method "test" of the class "MyObject"
* <Object:MyObject>#test - The <> characters indicate a singleton method on a singleton class.
For example, wee can see that Integer#upto took the most time, 4.06 seconds. An additional
4.66 seconds were spent in its children, for a total time of 8.72 seconds.
|