aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/calmbench
diff options
context:
space:
mode:
authorGravatar Yuqian Li <liyuqian@google.com>2017-10-26 15:38:30 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-30 13:52:08 +0000
commit228da62fa791e1532826f8e17b945c3d8cbc1300 (patch)
treed9ac7196c678d8dc1ef6ad4b52c1c94c9bb8bf31 /tools/calmbench
parent08d73a4850f528917c69167f0072721406689484 (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')
-rw-r--r--tools/calmbench/ab.py36
-rw-r--r--tools/calmbench/calmbench.py12
2 files changed, 43 insertions, 5 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:
diff --git a/tools/calmbench/calmbench.py b/tools/calmbench/calmbench.py
index 50208cc3fd..b786b5f346 100644
--- a/tools/calmbench/calmbench.py
+++ b/tools/calmbench/calmbench.py
@@ -88,7 +88,7 @@ def parse_args():
['--baseline', str, 'master', baseline_help],
['--basearg', str, '', basearg_help],
['--reps', int, 2, reps_help],
- ['--threads', int, default_threads, threads_help]
+ ['--threads', int, default_threads, threads_help],
]
for d in definitions:
@@ -108,6 +108,11 @@ def parse_args():
parser.set_defaults(noinit=False);
parser.set_defaults(concise=False);
+ # Additional args for bots
+ BHELP = "bot specific options"
+ parser.add_argument('--githash', type=str, help=BHELP)
+ parser.add_argument('--keys', type=str, default=[], nargs='+', help=BHELP)
+
args = parser.parse_args()
if not args.basearg:
args.basearg = args.extraarg
@@ -189,6 +194,11 @@ def main():
"true" if args.noinit else "false"
]
+ if args.githash:
+ command += ['--githash', args.githash]
+ if args.keys:
+ command += (['--keys'] + args.keys)
+
if args.concise:
command.append("--concise")