= 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.

