6
6
from __future__ import division
8
from sys import argv, stdout
8
if __name__ == '__main__':
10
from all import allBenchmarks
11
from speedcenter import SpeedcenterDriver
12
print SpeedcenterDriver().multidriver(allBenchmarks, argv[1:])
9
15
from os import uname
10
16
from sys import executable
11
17
from datetime import datetime
34
class SpeedcenterOptions(BenchmarkOptions):
36
('url', None, None, 'Location of Speedcenter to which to upload results.'),
39
def postOptions(self):
41
raise UsageError("The Speedcenter URL must be provided.")
45
class SpeedcenterDriver(Driver):
46
def benchmark_report(self, acceptCount, duration, name):
47
print name, acceptCount, duration
49
self.results.setdefault(name, []).append((acceptCount, duration))
53
39
def reportEnvironment():
54
40
revision = twisted.version.short().split('r', 1)[1]
85
options = SpeedcenterOptions()
87
options.parseOptions(argv[1:])
89
raise SystemExit(str(e))
69
class SpeedcenterOptions(BenchmarkOptions):
72
'Location of Speedcenter to which to upload results.'),
75
def postOptions(self):
77
raise UsageError("The Speedcenter URL must be provided.")
81
class SpeedcenterDriver(Driver):
82
options = SpeedcenterOptions
85
super(SpeedcenterDriver, self).__init__()
89
def benchmark_report(self, acceptCount, duration, name):
90
self.results.setdefault(name, []).append((acceptCount, duration))
93
def multidriver(self, benchmarks, argv):
94
raw = super(SpeedcenterDriver, self).multidriver(benchmarks, argv)
96
for (name, stringValue) in raw.iteritems():
97
name = name.split('.')[0]
98
value = eval(stringValue).values()[0]
101
environment = reportEnvironment()
103
for (name, values) in sorted(results.items()):
104
rates = [count / duration for (count, duration) in values]
105
totalCount = sum([count for (count, duration) in values])
106
totalDuration = sum([duration for (count, duration) in values])
108
name = SPEEDCENTER_NAMES.get(name, name)
109
stats = environment.copy()
110
stats['benchmark'] = name
111
stats['result_value'] = totalCount / totalDuration
112
stats['min'] = min(rates)
113
stats['max'] = max(rates)
116
fObj = urlopen(self.options['url'], urlencode(stats))
117
print name, fObj.read()
91
121
driver = SpeedcenterDriver()
95
options['duration'], options['iterations'], options['warmup'])
97
environment = reportEnvironment()
99
for (name, results) in sorted(driver.results.items()):
100
rates = [count / duration for (count, duration) in results]
101
totalCount = sum([count for (count, duration) in results])
102
totalDuration = sum([duration for (count, duration) in results])
104
name = SPEEDCENTER_NAMES.get(name, name)
105
stats = environment.copy()
106
stats['benchmark'] = name
107
stats['result_value'] = totalCount / totalDuration
108
stats['min'] = min(rates)
109
stats['max'] = max(rates)
112
fObj = urlopen(options['url'], urlencode(stats))
113
print name, fObj.read()
117
if __name__ == '__main__':