forked from SilverStudioGames/WTS
Update the timeit function to use the timeit module
add the autorange function as a bonus (I like it better)
This commit is contained in:
parent
b6d07aaa99
commit
dbda53d19a
@ -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
|
||||
@ -138,11 +139,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."""
|
||||
@ -222,4 +224,4 @@ init python early:
|
||||
return len(self._callable())
|
||||
|
||||
def execute_callbacks(callbacks):
|
||||
for callback in callbacks: callback()
|
||||
for callback in callbacks: callback()
|
||||
|
Loading…
Reference in New Issue
Block a user