Add logged_duration context manager for profiling.

This commit is contained in:
Dan Albert
2021-05-08 17:55:18 -07:00
parent de07f10e57
commit b7619630cf
6 changed files with 59 additions and 46 deletions

13
game/profiling.py Normal file
View File

@@ -0,0 +1,13 @@
import logging
import timeit
from contextlib import contextmanager
from datetime import timedelta
from typing import Iterator
@contextmanager
def logged_duration(event: str) -> Iterator[None]:
start = timeit.default_timer()
yield
end = timeit.default_timer()
logging.debug("%s took %s", event, timedelta(seconds=end - start))