Sha256: 6c841ded721f8293fc2abc607ddd90f1d659e0b6bbeb01325e61bf775d8f75c6

Contents?: true

Size: 1.67 KB

Versions: 11

Compression:

Stored size: 1.67 KB

Contents

require 'erb'

module OutputToHTML

TEMPLATE_HEADER =<<"EOT"
  <div>
    All times are rounded to the nearest thousandth for display purposes. Speedups next to each time are computed
    before any rounding occurs. Also, all speedup calculations are computed by comparing a given time against
    the very first column (which is always the default ActiveRecord::Base.create method.
   </div>
EOT

TEMPLATE =<<"EOT"
 <style>
 td#benchmarkTitle {
   border: 1px solid black;
   padding: 2px;
   font-size: 0.8em;
   background-color: black;
   color: white;
 }
 td#benchmarkCell {
   border: 1px solid black;
   padding: 2px;
   font-size: 0.8em;
 }
 </style>
   <table>
     <tr>
       <% columns.each do |col| %>
         <td id="benchmarkTitle"><%= col %></td>
       <% end %>
     </tr>
     <tr>
       <% times.each do |time| %>
         <td id="benchmarkCell"><%= time %></td>
       <% end %>
     </tr>
     <tr><td>&nbsp;</td></tr>
   </table>
EOT

  def self.output_results( filename, results )
    html = ''
    results.each do |result_set|
      columns, times = [], []
      result_set.each do |result|
        columns << result.description
        if result.failed
          times << "failed"
        else
          time = result.tms.real.round_to( 3 )
          speedup = ( result_set.first.tms.real / result.tms.real ).round 

          if result == result_set.first
            times << "#{time}"
          else
            times << "#{time} (#{speedup}x speedup)"
          end
        end
      end

      template = ERB.new( TEMPLATE, 0, "%<>")
      html << template.result( binding )
    end
    
    File.open( filename, 'w' ){ |file| file.write( TEMPLATE_HEADER + html ) }
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
activerecord-import-0.12.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.11.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.10.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.9.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.8.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.7.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.6.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.5.0 benchmarks/lib/output_to_html.rb
activerecord-import-0.4.1 benchmarks/lib/output_to_html.rb
activerecord-import-0.4.0 benchmarks/lib/output_to_html.rb
activerecord-import-rails4-0.5.0 benchmarks/lib/output_to_html.rb