diff options
author | Yuqian Li <liyuqian@google.com> | 2017-10-26 15:38:30 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-30 13:52:08 +0000 |
commit | 228da62fa791e1532826f8e17b945c3d8cbc1300 (patch) | |
tree | d9ac7196c678d8dc1ef6ad4b52c1c94c9bb8bf31 /tools/calmbench/ab.py | |
parent | 08d73a4850f528917c69167f0072721406689484 (diff) |
Output calmbench json in nanobench format
Meanwhile, we also make the bot name more similar to the perf bot.
Bug: skia:
Change-Id: I8b0e6aa2d927aa4a0ce57606345589adb6e920b3
Reviewed-on: https://skia-review.googlesource.com/64082
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'tools/calmbench/ab.py')
-rw-r--r-- | tools/calmbench/ab.py | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/tools/calmbench/ab.py b/tools/calmbench/ab.py index e417414820..2a3944d577 100644 --- a/tools/calmbench/ab.py +++ b/tools/calmbench/ab.py @@ -78,6 +78,11 @@ def parse_args(): help="If set, no verbose thread info will be printed.") parser.set_defaults(concise=False) + # Additional args for bots + BHELP = "bot specific options" + parser.add_argument('--githash', type=str, default=[], nargs='+', help=BHELP) + parser.add_argument('--keys', type=str, default=[], nargs='+', help=BHELP) + args = parser.parse_args() args.skip_b = args.skip_b == "true" args.noinit = args.noinit == "true" @@ -252,6 +257,13 @@ def format_r(r): return ('%6.2f' % percentage(r)) + "%" +def normalize_r(r): + if r > 1.0: + return r - 1.0 + else: + return 1.0 - 1/r + + def test(): args = parse_args() @@ -296,10 +308,26 @@ def test(): (format_r(r), suspect) with open("%s/bench_%s_%s.json" % (args.outdir, args.a, args.b), 'w') as f: - f.write(json.dumps(map( - lambda bench: {bench: regression(bench)}, - suspects - ))) + results = {} + for bench in timesA: + r = regression(bench) if bench in suspects else 1.0 + results[bench] = { + args.config: { + "signed_regression": normalize_r(r), + "lower_quantile_ms": get_lower_upper(timesA[bench])[0] * 1e-6, + "upper_quantile_ms": get_lower_upper(timesA[bench])[1] * 1e-6 + } + } + + output = {"results": results} + if args.githash: + output["gitHash"] = args.githash + if args.keys: + keys = {} + for i in range(len(args.keys) / 2): + keys[args.keys[i * 2]] = args.keys[i * 2 + 1] + output["key"] = keys + f.write(json.dumps(output, indent=4)) print ("\033[36mJSON results available in %s\033[0m" % f.name) with open("%s/bench_%s_%s.csv" % (args.outdir, args.a, args.b), 'w') as out: |