[v2,3/3] benchtests: send non-consumable data to stderr
Commit Message
From: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Non-consumable data, alias data not related to benchmarks, should be sent to
the standard error, thus pipelines can work as expected.
* benchtests/scripts/compare_bench.py (do_compare): write to stderr in case
stat is not present.
* benchtests/scripts/compare_bench.py (plot_graphs): write to stderr in case
timings field is not present. Also string showing the output filename goes
into the stderr.
---
benchtests/scripts/compare_bench.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Comments
On 12/12/18 4:16 AM, leonardo.sandoval.gonzalez@linux.intel.com wrote:
> From: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
>
> Non-consumable data, alias data not related to benchmarks, should be sent to
> the standard error, thus pipelines can work as expected.
>
> * benchtests/scripts/compare_bench.py (do_compare): write to stderr in case
> stat is not present.
> * benchtests/scripts/compare_bench.py (plot_graphs): write to stderr in case
> timings field is not present. Also string showing the output filename goes
> into the stderr.
Looks OK.
Thanks,
Siddhesh
> ---
> benchtests/scripts/compare_bench.py | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/benchtests/scripts/compare_bench.py b/benchtests/scripts/compare_bench.py
> index f0c9bf7a7d..eaddc57e4e 100755
> --- a/benchtests/scripts/compare_bench.py
> +++ b/benchtests/scripts/compare_bench.py
> @@ -47,6 +47,7 @@ def do_compare(func, var, tl1, tl2, par, threshold):
> v2 = tl2[str(par)]
> d = abs(v2 - v1) * 100 / v1
> except KeyError:
> + sys.stderr.write('%s(%s)[%s]: stat does not exist\n' % (func, var, par))
> return
> except ZeroDivisionError:
> return
> @@ -85,7 +86,7 @@ def compare_runs(pts1, pts2, threshold, stats):
> # timing info for the function variant.
> if 'timings' not in pts1['functions'][func][var].keys() or \
> 'timings' not in pts2['functions'][func][var].keys():
> - continue
> + continue
>
> # If two lists do not have the same length then it is likely that
> # the performance characteristics of the function have changed.
> @@ -133,7 +134,7 @@ def plot_graphs(bench1, bench2):
> # No point trying to print a graph if there are no detailed
> # timings.
> if u'timings' not in bench1['functions'][func][var].keys():
> - print('Skipping graph for %s(%s)' % (func, var))
> + sys.stderr.write('Skipping graph for %s(%s)\n' % (func, var))
> continue
>
> pylab.clf()
> @@ -157,7 +158,7 @@ def plot_graphs(bench1, bench2):
> filename = "%s-%s.png" % (func, var)
> else:
> filename = "%s.png" % func
> - print('Writing out %s' % filename)
> + sys.stderr.write('Writing out %s' % filename)
> pylab.savefig(filename)
>
> def main(bench1, bench2, schema, threshold, stats):
>
@@ -47,6 +47,7 @@ def do_compare(func, var, tl1, tl2, par, threshold):
v2 = tl2[str(par)]
d = abs(v2 - v1) * 100 / v1
except KeyError:
+ sys.stderr.write('%s(%s)[%s]: stat does not exist\n' % (func, var, par))
return
except ZeroDivisionError:
return
@@ -85,7 +86,7 @@ def compare_runs(pts1, pts2, threshold, stats):
# timing info for the function variant.
if 'timings' not in pts1['functions'][func][var].keys() or \
'timings' not in pts2['functions'][func][var].keys():
- continue
+ continue
# If two lists do not have the same length then it is likely that
# the performance characteristics of the function have changed.
@@ -133,7 +134,7 @@ def plot_graphs(bench1, bench2):
# No point trying to print a graph if there are no detailed
# timings.
if u'timings' not in bench1['functions'][func][var].keys():
- print('Skipping graph for %s(%s)' % (func, var))
+ sys.stderr.write('Skipping graph for %s(%s)\n' % (func, var))
continue
pylab.clf()
@@ -157,7 +158,7 @@ def plot_graphs(bench1, bench2):
filename = "%s-%s.png" % (func, var)
else:
filename = "%s.png" % func
- print('Writing out %s' % filename)
+ sys.stderr.write('Writing out %s' % filename)
pylab.savefig(filename)
def main(bench1, bench2, schema, threshold, stats):