2 # supply the benchmark dump file as an argumetn to this program
9 inject(first
) { |m
, i
| i
> m
? i
: m
}
13 inject(first
) { |m
, i
| i
< m
? i
: m
}
19 colors
= %w
{F74343
444130 7DA478 E4AC3D
1F479E
}
22 results
= ServerTestResults
.open(ARGV[0])
24 response_chart
= GoogleChart
::LineChart.new('500x300', Time
.now
.strftime('%Y.%m.%d'), true)
25 servers
= results
.servers
.sort_by
do |x
,y
|
26 results
.data(x
).map
{ |d
| d
[1] }.mean
30 results
.servers
.sort
.each
{ |x
| cmap
[x
] = colors
.shift
}
32 servers
.each
do |server
|
33 data = results
.data(server
).sort
34 data_x
+= data.map
{ |d
| d
[0] }
35 data_y
+= data.map
{ |d
| d
[1] }
38 servers
.each
do |server
|
39 data = results
.data(server
).sort
40 data.map
! { |d
| [d
[0]-data_x
.min
, d
[1]-data_y
.min
]}
41 response_chart
.data(server
, data, cmap
[server
])
44 label
= case results
.benchmark
47 when "wait_fib", "concurrency"
51 when "wait", "wait_fib"
52 "seconds waited every 10 requests"
55 response_chart
.axis(:y, :range => [data_y
.min
,data_y
.max
])
56 response_chart
.axis(:y, :labels => ['req/s'], :positions => [50])
57 response_chart
.axis(:x, :range => [data_x
.min
,data_x
.max
])
58 response_chart
.axis(:x, :labels => [label
], :positions => [50])
59 puts response_chart
.to_url