import statistics import time LOOPS = 1024 LOOPS = 3 def format_ns(ns): if ns > 1000_000: return f"{ns / 1000_000:.1f} ms" if ns > 1000: return f"{ns / 1000:.1f} us" else: return f"{ns} ns" def stats(timings): mean = statistics.mean(timings) std_dev = statistics.stdev(timings) mean = format_ns(mean) std_dev = format_ns(std_dev) print(f"Mean +- std dev: {mean} +- {std_dev} ({len(timings)} values)") sleep = time.sleep clock = time.perf_counter_ns timings = [] deadline = time.monotonic() + 5.0 print("time.sleep(1e-10) benchmark...") while True: t0 = clock() sleep(1e-10) t1 = clock() timings.append(t1 - t0) if time.monotonic() >= deadline: break stats(timings)