benchtests: Add --no-diff and --no-header options

Having a string comparison report with neither diff numbers nor header
yields a more useful output to be consumed by other tools.

	* benchtests/scripts/compare_string.py: Add --no-diff and --no-header
	options to avoid diff calculation and omit header, respectively.
	(main): process --no-diff and --no-header
This commit is contained in:
Leonardo Sandoval 2018-05-23 11:23:14 -05:00
parent 1457016337
commit 195abbf4cd
2 changed files with 24 additions and 10 deletions

View File

@ -1,3 +1,9 @@
2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
* benchtests/scripts/compare_string.py: Add --no-diff and --no-header
options to avoid diff calculation and omit header, respectively.
(main): process --no-diff and --no-header
2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
H.J. Lu <hongjiu.lu@intel.com>

View File

@ -79,7 +79,7 @@ def draw_graph(f, v, ifuncs, results):
pylab.savefig('%s-%s.png' % (f, v), bbox_inches='tight')
def process_results(results, attrs, base_func, graph):
def process_results(results, attrs, base_func, graph, no_diff, no_header):
""" Process results and print them
Args:
@ -88,16 +88,19 @@ def process_results(results, attrs, base_func, graph):
"""
for f in results['functions'].keys():
print('Function: %s' % f)
v = results['functions'][f]['bench-variant']
print('Variant: %s' % v)
base_index = 0
if base_func:
base_index = results['functions'][f]['ifuncs'].index(base_func)
if not no_header:
print('Function: %s' % f)
print('Variant: %s' % v)
print("%36s%s" % (' ', '\t'.join(results['functions'][f]['ifuncs'])))
print("=" * 120)
graph_res = {}
for res in results['functions'][f]['results']:
attr_list = ['%s=%s' % (a, res[a]) for a in attrs]
@ -107,6 +110,7 @@ def process_results(results, attrs, base_func, graph):
graph_res[key] = res['timings']
for t in res['timings']:
sys.stdout.write ('%12.2f' % t)
if not no_diff:
if i != base_index:
base = res['timings'][base_index]
diff = (base - t) * 100 / base
@ -132,7 +136,7 @@ def main(args):
attrs = args.attributes.split(',')
results = parse_file(args.input, args.schema)
process_results(results, attrs, base_func, args.graph)
process_results(results, attrs, base_func, args.graph, args.no_diff, args.no_header)
if __name__ == '__main__':
@ -152,6 +156,10 @@ if __name__ == '__main__':
help='IFUNC variant to set as baseline.')
parser.add_argument('-g', '--graph', action='store_true',
help='Generate a graph from results.')
parser.add_argument('--no-diff', action='store_true',
help='Do not print the difference from baseline.')
parser.add_argument('--no-header', action='store_true',
help='Do not print the header.')
args = parser.parse_args()
main(args)