1 # supply the benchmark dump file as an argumetn to this program
10 inject(0) { |i, s| s += i }
20 results = Marshal.load(File.read(ARGV[0]))
22 chart = GoogleChart::LineChart.new('500x300', [Time.now.strftime('%Y.%m.%d'), "requests per second", "#{results.length} data points"].join(','), true)
23 servers = results.map {|r| r[:server] }.uniq
24 servers.each do |server|
25 server_data = results.find_all { |r| r[:server] == server }
26 concurrencies = server_data.map { |d| d[:concurrency] }.uniq
28 concurrencies.each do |c|
29 measurements = server_data.find_all { |d| d[:concurrency] == c }.map { |d| d[:rps] }
30 data << [c, measurements.avg]
32 chart.data(server, data.sort, colors.shift)
34 chart.axis(:x, :range => [0,100])
35 chart.axis(:x, :labels => ['concurrency'], :positions => [50])