From b3c72d1e4554b5fd58cbf3ba2fbf56275446447b Mon Sep 17 00:00:00 2001 From: skdltmxn Date: Wed, 17 Jun 2020 06:12:50 +0900 Subject: feat(std/hash): reimplement all hashes in WASM (#6292) --- tools/hash_benchmark.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tools/hash_benchmark.py (limited to 'tools/hash_benchmark.py') diff --git a/tools/hash_benchmark.py b/tools/hash_benchmark.py new file mode 100644 index 000000000..8dd3ccf0b --- /dev/null +++ b/tools/hash_benchmark.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +# Performs benchmark on hash algorithms + +import os +import sys +import time +import subprocess + +algorithms = [ + "md5", + "sha1", + "sha224", + "sha256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512", +] + + +def run_benchmark(deno_exe, method, input_file): + # compile + subprocess.call([deno_exe, "run", "cli/tests/hash.ts"]) + + for alg in algorithms: + args = [ + deno_exe, "run", "--allow-read", "cli/tests/hash.ts", method, alg, + input_file + ] + + p = subprocess.Popen(args, stdout=subprocess.PIPE) + (out, _) = p.communicate() + + elapsed = out.split(':')[1].strip() + print "[{}] {}".format(alg, elapsed) + + +def main(): + if len(sys.argv) < 4: + print "Usage ./tools/hash_benchmark.py path/to/deno method input" + sys.exit(1) + + run_benchmark(sys.argv[1], sys.argv[2], sys.argv[3]) + + +if __name__ == '__main__': + main() -- cgit v1.2.3