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.