diff --git a/game/scripts/utility/common_functions.rpy b/game/scripts/utility/common_functions.rpy index dae89f72..2f7eac57 100644 --- a/game/scripts/utility/common_functions.rpy +++ b/game/scripts/utility/common_functions.rpy @@ -11,6 +11,7 @@ init python early: import re import string import functools + import timeit as timeit_module from bisect import bisect from operator import itemgetter from operator import add as _add @@ -141,11 +142,12 @@ init python early: return False def timeit(func, loops=10000, args=(), kwargs={}): - start = time.time() - for i in range(loops): - func(*args, **kwargs) - end = time.time() - print(f"The task has taken {end-start} seconds to finish") + rv = timeit_module.timeit("func(*args, **kwargs)", number=loops, globals=dict(func=func, args=args, kwargs=kwargs)) + print(f"The task has taken {rv} seconds to finish") + + def autorange(func, args=(), kwargs={}): + loops, time = timeit_module.Timer("func(*args, **kwargs)", globals=dict(func=func, args=args, kwargs=kwargs)).autorange() + print(f"The task has taken {time/loops} seconds to finish ({loops} iterations in {time} seconds)") def list_swap_values(l, val1, val2): """Mutates the original list."""