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.