forked from denoland/deno
-
Notifications
You must be signed in to change notification settings - Fork 1
/
hash_benchmark.py
49 lines (37 loc) · 1.01 KB
/
hash_benchmark.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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()