aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>2018-05-23 11:23:14 -0500
committerLeonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>2018-06-01 16:32:43 -0500
commit195abbf4cd635fcaaf60016da488768b6e9d7e85 (patch)
tree120d8a695c1c808bd6a27d4c9cfb8c4f6ddc4bb4
parent1457016337072d1b6739f571846b619596990cb7 (diff)
downloadglibc-195abbf4cd635fcaaf60016da488768b6e9d7e85.zip
glibc-195abbf4cd635fcaaf60016da488768b6e9d7e85.tar.gz
glibc-195abbf4cd635fcaaf60016da488768b6e9d7e85.tar.bz2
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
-rw-r--r--ChangeLog6
-rwxr-xr-xbenchtests/scripts/compare_strings.py28
2 files changed, 24 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 09de63b..c855a2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,10 @@
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>
* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py
index d374420..850c455 100755
--- a/benchtests/scripts/compare_strings.py
+++ b/benchtests/scripts/compare_strings.py
@@ -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)
- print("%36s%s" % (' ', '\t'.join(results['functions'][f]['ifuncs'])))
- print("=" * 120)
+ 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,10 +110,11 @@ 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 i != base_index:
- base = res['timings'][base_index]
- diff = (base - t) * 100 / base
- sys.stdout.write (' (%6.2f%%)' % diff)
+ if not no_diff:
+ if i != base_index:
+ base = res['timings'][base_index]
+ diff = (base - t) * 100 / base
+ sys.stdout.write (' (%6.2f%%)' % diff)
sys.stdout.write('\t')
i = i + 1
print('')
@@ -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)