flat.txt

examples/flat.txt
Last Update: 2010-04-11 23:42:29 -0600

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.