]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
benchtests: New -g option to generate graphs in compare_strings.py
authorSiddhesh Poyarekar <siddhesh@sourceware.org>
Sat, 16 Sep 2017 09:53:59 +0000 (15:23 +0530)
committerSiddhesh Poyarekar <siddhesh@sourceware.org>
Sat, 16 Sep 2017 09:54:00 +0000 (15:24 +0530)
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
benchtests/scripts/compare_strings.py

index 20746e64a94c922b78d428fe376ccb2646cc69af..ea0b67104e07ee903fc55c8328ff12c4a5db9c60 100644 (file)
--- 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.
 
index 1f0be3b981ea0e1cdb32f92439400d4c47c4d28a..65119edd64fadca702894b3558827583cee304e8 100755 (executable)
@@ -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)