Files
EasyFace/modelscope/utils/timer.py
2023-03-02 11:17:26 +08:00

50 lines
1.2 KiB
Python

# Copyright (c) Facebook, Inc. and its affiliates.
# Copyright © Alibaba, Inc. and its affiliates.
import datetime
import time
class Timer(object):
def __init__(self):
"""Recorder of time consumption.
"""
self.reset()
@property
def average_time(self):
return self.total_time / self.calls if self.calls > 0 else 0.0
def tic(self):
# using time.time instead of time.clock because time time.clock
# does not normalize for multithreading
self.start_time = time.time()
def toc(self, average=True):
self.add(time.time() - self.start_time)
if average:
return self.average_time
else:
return self.diff
def add(self, time_diff):
self.diff = time_diff
self.total_time += self.diff
self.calls += 1
def reset(self):
self.total_time = 0.0
self.calls = 0
self.start_time = 0.0
self.diff = 0.0
def avg_time_str(self):
time_str = str(datetime.timedelta(seconds=self.average_time))
return time_str
def get_time_str(time_diff):
time_str = str(datetime.timedelta(seconds=time_diff))
return time_str