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: