# Copyright © 2023 Apple Inc.

import time


def time_fn(fn, *args):
    print(f"Timing {fn.__name__} ...", end=" ")

    # warmup
    for _ in range(5):
        fn(*args)

    num_iters = 100
    tic = time.perf_counter()
    for _ in range(num_iters):
        x = fn(*args)
    toc = time.perf_counter()

    msec = 1e3 * (toc - tic) / num_iters
    print(f"{msec:.5f} msec")
