<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “www.w3.org/TR/html4/strict.dtd”> <html> <head> <style media=“all” type=“text/css”>
table {
border-collapse: collapse;
border: 1px solid #CCC;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9pt;
line-height: normal;
}
th {
text-align: center;
border-top: 1px solid #FB7A31;
border-bottom: 1px solid #FB7A31;
background: #FFC;
padding: 0.3em;
border-left: 1px solid silver;
}
tr.break td {
border: 0;
border-top: 1px solid #FB7A31;
padding: 0;
margin: 0;
}
tr.method td {
font-weight: bold;
}
td {
padding: 0.3em;
}
td:first-child {
width: 190px;
}
td {
border-left: 1px solid #CCC;
text-align: center;
}
</style>
</head> <body> <h1> Graph Profile</h1> <p>Graph profiles show how long each method runs, which methods call it
and which methods it calls. To understand how to read a graph profile, refer to the <a href="graph.txt">documentation</a> for the text graph report. </p>
<p>The main advantage of an HTML graph format versus the text format is the use of
hyperlinks to jump between methods. This makes it easier to understand the flow
of control through a program and which methods take the most time.</p> <p>Below is the output from running printers_test.rb reproduced in HTML. </p> <p>Profile Report</p>
<table>
<tr> <th>Thread ID</th> <th>Total Time</th> </tr> <tr> <td><a href="#21277412">21277412</a></td> <td>8.766</td> </tr>
</table>
<h2><a name=“21277412”>Thread 21277412</a></h2> <table>
<tr> <th> %Total</th> <th> %Self</th> <th> Total</th> <th> Self</th> <th> Children</th> <th> Calls</th> <th>Name</th> </tr> <tr class="method"> <td> 100.00%</td> <td> 0.00%</td> <td> 8.77</td> <td> 0.00</td> <td> 8.77</td> <td> 1</td> <td><a name="_toplevel_21277412">#toplevel</a></td> </tr> <tr> <td> </td> <td> </td> <td> 8.77</td> <td> 0.00</td> <td> 8.77</td> <td> 1/1</td> <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 8.77</td> <td> 0.00</td> <td> 8.77</td> <td> 1/1</td> <td><a href="#_toplevel_21277412">#toplevel</a></td> </tr> <tr class="method"> <td> 100.00%</td> <td> 0.00%</td> <td> 8.77</td> <td> 0.00</td> <td> 8.77</td> <td> 1</td> <td><a name="Object_run_primes_21277412">Object#run_primes</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.02</td> <td> 0.00</td> <td> 0.02</td> <td> 1/1</td> <td><a href="#Object_make_random_array_21277412">Object#make_random_array</a></td> </tr> <tr> <td> </td> <td> </td> <td> 2.09</td> <td> 0.00</td> <td> 2.09</td> <td> 1/1</td> <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td> </tr> <tr> <td> </td> <td> </td> <td> 6.66</td> <td> 0.00</td> <td> 6.66</td> <td> 1/1</td> <td><a href="#Object_find_primes_21277412">Object#find_primes</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 6.63</td> <td> 4.06</td> <td> 2.56</td> <td> 500/501</td> <td><a href="#Object_is_prime_21277412">Object#is_prime</a></td> </tr> <tr> <td> </td> <td> </td> <td> 2.09</td> <td> 0.00</td> <td> 2.09</td> <td> 1/501</td> <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td> </tr> <tr class="method"> <td> 99.48%</td> <td> 46.34%</td> <td> 8.72</td> <td> 4.06</td> <td> 4.66</td> <td> 501</td> <td><a name="Integer_upto_21277412">Integer#upto</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 61/61</td> <td><a href="#Array_[]_21277412">Array#[]</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 61/61</td> <td><a href="#Fixnum_>_21277412">Fixnum#_</a></td> </tr> <tr> <td> </td> <td> </td> <td> 2.09</td> <td> 2.09</td> <td> 0.00</td> <td> 61/61</td> <td><a href="#Kernel_sleep_21277412">Kernel.sleep</a></td> </tr> <tr> <td> </td> <td> </td> <td> 1.24</td> <td> 1.24</td> <td> 0.00</td> <td> 250862/250862</td> <td><a href="#Fixnum____21277412">Fixnum#==</a></td> </tr> <tr> <td> </td> <td> </td> <td> 1.33</td> <td> 1.33</td> <td> 0.00</td> <td> 250862/250862</td> <td><a href="#Fixnum_%_21277412">Fixnum#%</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 6.66</td> <td> 0.01</td> <td> 6.64</td> <td> 1/1</td> <td><a href="#Object_find_primes_21277412">Object#find_primes</a></td> </tr> <tr class="method"> <td> 75.93%</td> <td> 0.17%</td> <td> 6.66</td> <td> 0.01</td> <td> 6.64</td> <td> 1</td> <td><a name="Array_select_21277412">Array#select</a></td> </tr> <tr> <td> </td> <td> </td> <td> 6.64</td> <td> 0.01</td> <td> 6.63</td> <td> 500/500</td> <td><a href="#Object_is_prime_21277412">Object#is_prime</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 6.66</td> <td> 0.00</td> <td> 6.66</td> <td> 1/1</td> <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td> </tr> <tr class="method"> <td> 75.93%</td> <td> 0.00%</td> <td> 6.66</td> <td> 0.00</td> <td> 6.66</td> <td> 1</td> <td><a name="Object_find_primes_21277412">Object#find_primes</a></td> </tr> <tr> <td> </td> <td> </td> <td> 6.66</td> <td> 0.01</td> <td> 6.64</td> <td> 1/1</td> <td><a href="#Array_select_21277412">Array#select</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 6.64</td> <td> 0.01</td> <td> 6.63</td> <td> 500/500</td> <td><a href="#Array_select_21277412">Array#select</a></td> </tr> <tr class="method"> <td> 75.76%</td> <td> 0.17%</td> <td> 6.64</td> <td> 0.01</td> <td> 6.63</td> <td> 500</td> <td><a name="Object_is_prime_21277412">Object#is_prime</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500/501</td> <td><a href="#Fixnum_-_21277412">Fixnum#-</a></td> </tr> <tr> <td> </td> <td> </td> <td> 6.63</td> <td> 4.06</td> <td> 2.56</td> <td> 500/501</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 2.09</td> <td> 0.00</td> <td> 2.09</td> <td> 1/1</td> <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td> </tr> <tr class="method"> <td> 23.89%</td> <td> 0.00%</td> <td> 2.09</td> <td> 0.00</td> <td> 2.09</td> <td> 1</td> <td><a name="Object_find_largest_21277412">Object#find_largest</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/501</td> <td><a href="#Fixnum_-_21277412">Fixnum#-</a></td> </tr> <tr> <td> </td> <td> </td> <td> 2.09</td> <td> 0.00</td> <td> 2.09</td> <td> 1/501</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Array_first_21277412">Array#first</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Array_length_21277412">Array#length</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 2.09</td> <td> 2.09</td> <td> 0.00</td> <td> 61/61</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr class="method"> <td> 23.89%</td> <td> 23.89%</td> <td> 2.09</td> <td> 2.09</td> <td> 0.00</td> <td> 61</td> <td><a name="Kernel_sleep_21277412">Kernel.sleep</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 1.33</td> <td> 1.33</td> <td> 0.00</td> <td> 250862/250862</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr class="method"> <td> 15.12%</td> <td> 15.12%</td> <td> 1.33</td> <td> 1.33</td> <td> 0.00</td> <td> 250862</td> <td><a name="Fixnum_%_21277412">Fixnum#%</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 1.24</td> <td> 1.24</td> <td> 0.00</td> <td> 250862/250862</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr class="method"> <td> 14.13%</td> <td> 14.13%</td> <td> 1.24</td> <td> 1.24</td> <td> 0.00</td> <td> 250862</td> <td><a name="Fixnum____21277412">Fixnum#==</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.02</td> <td> 0.00</td> <td> 0.02</td> <td> 1/1</td> <td><a href="#Object_run_primes_21277412">Object#run_primes</a></td> </tr> <tr class="method"> <td> 0.18%</td> <td> 0.00%</td> <td> 0.02</td> <td> 0.00</td> <td> 0.02</td> <td> 1</td> <td><a name="Object_make_random_array_21277412">Object#make_random_array</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.02</td> <td> 0.02</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Array_each_index_21277412">Array#each_index</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Class_new_21277412">Class#new</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.02</td> <td> 0.02</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Object_make_random_array_21277412">Object#make_random_array</a></td> </tr> <tr class="method"> <td> 0.18%</td> <td> 0.18%</td> <td> 0.02</td> <td> 0.02</td> <td> 0.00</td> <td> 1</td> <td><a name="Array_each_index_21277412">Array#each_index</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500/500</td> <td><a href="#Kernel_rand_21277412">Kernel.rand</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500/500</td> <td><a href="#Array_[]__21277412">Array#[]=</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500/501</td> <td><a href="#Object_is_prime_21277412">Object#is_prime</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/501</td> <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 501</td> <td><a name="Fixnum_-_21277412">Fixnum#-</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Kernel_rand_21277412">Kernel.rand</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1</td> <td><a name="Integer_to_int_21277412">Integer#to_int</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1</td> <td><a name="Array_first_21277412">Array#first</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Class_new_21277412">Class#new</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1</td> <td><a name="Array_initialize_21277412">Array#initialize</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Object_find_largest_21277412">Object#find_largest</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1</td> <td><a name="Array_length_21277412">Array#length</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Object_make_random_array_21277412">Object#make_random_array</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1</td> <td><a name="Class_new_21277412">Class#new</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Array_initialize_21277412">Array#initialize</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 61/61</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 61</td> <td><a name="Fixnum_>_21277412">Fixnum#_</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 61/61</td> <td><a href="#Integer_upto_21277412">Integer#upto</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 61</td> <td><a name="Array_[]_21277412">Array#[]</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500/500</td> <td><a href="#Array_each_index_21277412">Array#each_index</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500</td> <td><a name="Array_[]__21277412">Array#[]=</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500/500</td> <td><a href="#Array_each_index_21277412">Array#each_index</a></td> </tr> <tr class="method"> <td> 0.00%</td> <td> 0.00%</td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 500</td> <td><a name="Kernel_rand_21277412">Kernel.rand</a></td> </tr> <tr> <td> </td> <td> </td> <td> 0.00</td> <td> 0.00</td> <td> 0.00</td> <td> 1/1</td> <td><a href="#Integer_to_int_21277412">Integer#to_int</a></td> </tr> <tr class="break"> <td colspan="7"></td> </tr>
</table> </body> </html>