import argparse | |
import timeit | |
from typing import Callable | |
from utils import inference | |
parser = argparse.ArgumentParser(description="Speed benchmark") | |
parser.add_argument( | |
"--repeat", | |
type=int, | |
default=3, | |
help="Times an experiment will be run.", | |
) | |
args = parser.parse_args() | |
def measure_speed(func: Callable[[], None]): | |
# as written in https://docs.python.org/3/library/timeit.html#timeit.Timer.repeat, | |
# min should be taken rather than the average | |
runtimes = timeit.repeat( | |
func, | |
repeat=args.repeat, | |
number=10, | |
) | |
print(runtimes) | |
print("Min execution time: %.3fs" % (min(runtimes) / 10.0)) | |
if __name__ == "__main__": | |
measure_speed(inference) | |