mirror of
https://github.com/denoland/deno.git
synced 2024-11-29 16:30:56 -05:00
49 lines
1 KiB
Python
49 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()
|