mirror of
https://github.com/denoland/deno.git
synced 2024-12-25 16:49:18 -05:00
50 lines
1 KiB
Python
50 lines
1 KiB
Python
|
#!/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()
|