test: print benchmarks summary
This commit is contained in:
parent
e822e6be9f
commit
bb4f6106ee
|
@ -105,6 +105,45 @@ configurations = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class ResultsSummary:
|
||||||
|
def __init__(self, results):
|
||||||
|
self.results = results
|
||||||
|
self.write_bandwidth = self.collect('write_bandwidth')
|
||||||
|
self.read_bandwidth = self.collect('read_bandwidth')
|
||||||
|
self.write_efficiency = self.collect('write_efficiency')
|
||||||
|
self.read_efficiency = self.collect('read_efficiency')
|
||||||
|
|
||||||
|
def create_name(self, config):
|
||||||
|
return '{}:{}:{}:{}'.format(
|
||||||
|
config.sdram_module, config.sdram_data_width,
|
||||||
|
config.bist_length, config.bist_random)
|
||||||
|
|
||||||
|
def collect(self, attribute):
|
||||||
|
by_case = {}
|
||||||
|
for result in self.results:
|
||||||
|
value = getattr(result, attribute)()
|
||||||
|
by_case[self.create_name(result.config)] = value
|
||||||
|
return by_case
|
||||||
|
|
||||||
|
def value_string(self, metric, value):
|
||||||
|
if metric in ['write_bandwidth', 'read_bandwidth']:
|
||||||
|
return '{:6.3f} {}bps'.format(*human_readable(value))
|
||||||
|
elif ['write_efficiency', 'read_efficiency']:
|
||||||
|
return '{:5.1f} %'.format(100 * value)
|
||||||
|
else:
|
||||||
|
raise ValueError()
|
||||||
|
|
||||||
|
def print(self):
|
||||||
|
print('\n---====== Summary ======---')
|
||||||
|
for metric in ['write_bandwidth', 'read_bandwidth', 'write_efficiency', 'read_efficiency']:
|
||||||
|
print(metric)
|
||||||
|
for case, value in getattr(self, metric).items():
|
||||||
|
print(' {:30} {}'.format(case, self.value_string(metric, value)))
|
||||||
|
|
||||||
|
def plot(self):
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
results = []
|
results = []
|
||||||
for config in configurations:
|
for config in configurations:
|
||||||
|
@ -126,6 +165,8 @@ def main():
|
||||||
result.read_efficiency() * 100,
|
result.read_efficiency() * 100,
|
||||||
))
|
))
|
||||||
|
|
||||||
|
summary = ResultsSummary(results)
|
||||||
|
summary.print()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in New Issue