diff mbox series

[COMMITTED,3/3] benchtests: New -g option to generate graphs in compare_strings.py

Message ID 1505556666-3043-3-git-send-email-siddhesh@sourceware.org
State New
Headers show
Series [COMMITTED,1/3] benchtests: Use argparse to parse arguments | expand

Commit Message

Siddhesh Poyarekar Sept. 16, 2017, 10:11 a.m. UTC
The compare_strings.py option unconditionally generates a graph PNG
image of the input data, which can be unnecessary and slow.  Put this
behind an optional flag -g.

	* benchtests/scripts/compare_strings.py: New option -g.
	(draw_graph): Print a message that a graph is being generated.
	(process_results): Generate graph only if -g is passed.
	(main): Process option -g.
---
 ChangeLog                             |  5 +++++
 benchtests/scripts/compare_strings.py | 11 ++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/ChangeLog b/ChangeLog
index 20746e6..ea0b671 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@ 
 2017-09-16  Siddhesh Poyarekar  <siddhesh@sourceware.org>
 
+	* benchtests/scripts/compare_strings.py: New option -g.
+	(draw_graph): Print a message that a graph is being generated.
+	(process_results): Generate graph only if -g is passed.
+	(main): Process option -g.
+
 	* benchtests/scripts/compare_strings.py (process_results):
 	Better spacing for output.
 
diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py
index 1f0be3b..65119ed 100755
--- a/benchtests/scripts/compare_strings.py
+++ b/benchtests/scripts/compare_strings.py
@@ -57,6 +57,7 @@  def draw_graph(f, v, ifuncs, results):
         ifuncs: List of ifunc names
         results: Dictionary of results for each test criterion
     """
+    print('Generating graph for %s, variant \'%s\'' % (f, v))
     xkeys = results.keys()
 
     pylab.clf()
@@ -78,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):
+def process_results(results, attrs, base_func, graph):
     """ Process results and print them
 
     Args:
@@ -113,7 +114,9 @@  def process_results(results, attrs, base_func):
                 sys.stdout.write('\t')
                 i = i + 1
             print('')
-        draw_graph(f, v, results['functions'][f]['ifuncs'], graph_res)
+
+        if graph:
+            draw_graph(f, v, results['functions'][f]['ifuncs'], graph_res)
 
 
 def main(args):
@@ -129,7 +132,7 @@  def main(args):
     attrs = args.attributes.split(',')
 
     results = parse_file(args.input, args.schema)
-    process_results(results, attrs, base_func)
+    process_results(results, attrs, base_func, args.graph)
 
 
 if __name__ == '__main__':
@@ -147,6 +150,8 @@  if __name__ == '__main__':
     # Optional arguments.
     parser.add_argument('-b', '--base',
                         help='IFUNC variant to set as baseline.')
+    parser.add_argument('-g', '--graph', action='store_true',
+                        help='Generate a graph from results.')
 
     args = parser.parse_args()
     main(args)