mirror of
https://github.com/bugsink/bugsink.git
synced 2026-04-28 10:51:45 -05:00
2ddc33017a
was useful during debugging
49 lines
886 B
Python
49 lines
886 B
Python
import time
|
|
|
|
from contextlib import contextmanager
|
|
|
|
from django.db import connection
|
|
|
|
|
|
@contextmanager
|
|
def time_to_logger(logger, msg):
|
|
t0 = time.time()
|
|
try:
|
|
yield
|
|
finally:
|
|
took = (time.time() - t0) * 1000
|
|
logger.info(f"{took:6.2f}ms {msg}")
|
|
|
|
|
|
class TimeAndQueryCount:
|
|
def __init__(self):
|
|
self.took = None
|
|
self.count = None
|
|
|
|
|
|
@contextmanager
|
|
def time_and_query_count():
|
|
result = TimeAndQueryCount()
|
|
pre = len(connection.queries)
|
|
t0 = time.time()
|
|
try:
|
|
yield result
|
|
finally:
|
|
result.took = (time.time() - t0) * 1000
|
|
result.count = len(connection.queries) - pre
|
|
|
|
|
|
class Time:
|
|
def __init__(self):
|
|
self.took = None
|
|
|
|
|
|
@contextmanager
|
|
def time_it():
|
|
result = Time()
|
|
t0 = time.time()
|
|
try:
|
|
yield result
|
|
finally:
|
|
result.took = (time.time() - t0) * 1000
|