aboutsummaryrefslogtreecommitdiff
path: root/tools/make-both-single-timing-files.py
diff options
context:
space:
mode:
authorJason Gross2019-12-17 15:14:24 -0500
committerJason Gross2020-02-05 16:55:28 -0500
commit6799ad6240fa4d233f698c3cfa0bd5417f471bba (patch)
tree1653b06a6ee2e712ed4fc57eae4b0f08a9da3bca /tools/make-both-single-timing-files.py
parentc2f0b3c6c6942d8821ce05759b6940bd77435602 (diff)
Add --fuzz, --real, --user to timing scripts
- Add a `--fuzz` option to `make-both-single-timing-files.py` Passing `--fuzz=N` allows differences in character locations of up to `N` characters when matching lines in per-line timing diffs. The corresponding variable for `coq_makefile` is `TIMING_FUZZ=N`. See also the discussion at https://github.com/coq/coq/pull/11076#pullrequestreview-324791139 - Allow passing `--real` to per-file timing scripts and `--user` to per-line timing script. This allows easily comparing real times instead of user ones (or vice versa). - Support `TIMING_SORT_BY` and `TIMING_FUZZ` in Coq's own build - We also now use argparse rather than a hand-rolled argument parser; there were getting to be too many combinations of options. - Fix the ordering of columns in Coq's build system; this is the equivalent of #8167 for Coq's build system. Fixes #11301 Supersedes / closes #11022 Supersedes / closes #11230
Diffstat (limited to 'tools/make-both-single-timing-files.py')
-rwxr-xr-xtools/make-both-single-timing-files.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/tools/make-both-single-timing-files.py b/tools/make-both-single-timing-files.py
index fddf75f39f..a28da43043 100755
--- a/tools/make-both-single-timing-files.py
+++ b/tools/make-both-single-timing-files.py
@@ -1,12 +1,17 @@
#!/usr/bin/env python3
-import sys
from TimeFileMaker import *
if __name__ == '__main__':
- USAGE = 'Usage: %s [--sort-by=auto|absolute|diff] AFTER_FILE_NAME BEFORE_FILE_NAME [OUTPUT_FILE_NAME ..]' % sys.argv[0]
- HELP_STRING = r'''Formats timing information from the output of two invocations of `coqc -time` into a sorted table'''
- sort_by, args = parse_args(sys.argv, USAGE, HELP_STRING)
- left_dict = get_single_file_times(args[1])
- right_dict = get_single_file_times(args[2])
- table = make_diff_table_string(left_dict, right_dict, tag="Code", sort_by=sort_by)
- print_or_write_table(table, args[3:])
+ parser = argparse.ArgumentParser(description=r'''Formats timing information from the output of two invocations of `coqc -time` into a sorted table''')
+ add_sort_by(parser)
+ add_user(parser, single_timing=True)
+ add_fuzz(parser)
+ add_after_file_name(parser)
+ add_before_file_name(parser)
+ add_output_file_name(parser)
+ args = parser.parse_args()
+ left_dict = get_single_file_times(args.AFTER_FILE_NAME, use_real=args.real)
+ right_dict = get_single_file_times(args.BEFORE_FILE_NAME, use_real=args.real)
+ left_dict, right_dict = adjust_fuzz(left_dict, right_dict, fuzz=args.fuzz)
+ table = make_diff_table_string(left_dict, right_dict, tag="Code", sort_by=args.sort_by)
+ print_or_write_table(table, args.OUTPUT_FILE_NAME)