]>
Commit | Line | Data |
---|---|---|
675085c2 JG |
1 | # BigTable benchmark implemented in ERB. |
2 | # | |
3 | require 'erb' | |
4 | require 'benchmark' | |
5 | include ERB::Util | |
6 | ||
7 | table = (1 .. 1000).map do |_| (1 .. 10) end | |
8 | ||
9 | template = ERB.new <<-EOF | |
10 | <table> | |
11 | <% table.each do |row| %> | |
12 | <tr> | |
13 | <% row.each do |value| %> | |
14 | <td> | |
15 | <%= value %> | |
16 | </td> | |
17 | <% end %> | |
18 | </tr> | |
19 | <% end %> | |
20 | </table> | |
21 | EOF | |
22 | ||
23 | number_runs = 100 | |
24 | start_time = Time.now.to_f | |
25 | number_runs.times do | |
26 | template.result(binding) | |
27 | end | |
28 | end_time = Time.now.to_f | |
29 | ||
30 | # start_time and end_time are both in seconds now | |
31 | ms = (end_time - start_time) * 1000 / number_runs | |
32 | puts "\"ERB\", #{ms}" |