Stopwatch() can now be restarted and will automatically sum up all intervals between start() and stop() calls
This commit is contained in:
parent
4d1b075086
commit
ee3b5ee941
@ -8,6 +8,7 @@ class StopWatch:
|
|||||||
stopped: int | None = None
|
stopped: int | None = None
|
||||||
|
|
||||||
def __init__(self, auto_start=True):
|
def __init__(self, auto_start=True):
|
||||||
|
self.total_elapsed = 0
|
||||||
if auto_start:
|
if auto_start:
|
||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
@ -15,9 +16,9 @@ class StopWatch:
|
|||||||
self.started = perf_counter_ns()
|
self.started = perf_counter_ns()
|
||||||
self.stopped = None
|
self.stopped = None
|
||||||
|
|
||||||
def stop(self) -> float:
|
def stop(self):
|
||||||
self.stopped = perf_counter_ns()
|
self.stopped = perf_counter_ns()
|
||||||
return self.elapsed()
|
self.total_elapsed += self.elapsed()
|
||||||
|
|
||||||
reset = start
|
reset = start
|
||||||
|
|
||||||
@ -28,10 +29,10 @@ class StopWatch:
|
|||||||
return self.stopped - self.started
|
return self.stopped - self.started
|
||||||
|
|
||||||
def elapsed_string(self) -> str:
|
def elapsed_string(self) -> str:
|
||||||
return human_readable_time_from_ns(self.elapsed())
|
return human_readable_time_from_ns(self.total_elapsed)
|
||||||
|
|
||||||
def avg_elapsed(self, divider: int) -> float:
|
def avg_elapsed(self, divider: int) -> float:
|
||||||
return self.elapsed() / divider
|
return self.total_elapsed / divider
|
||||||
|
|
||||||
def avg_string(self, divider: int) -> str:
|
def avg_string(self, divider: int) -> str:
|
||||||
return human_readable_time_from_ns(int(self.avg_elapsed(divider)))
|
return human_readable_time_from_ns(int(self.avg_elapsed(divider)))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user