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

