mirror of
https://gitcode.com/gh_mirrors/eas/EasyFace.git
synced 2025-12-30 13:02:29 +00:00
50 lines
1.2 KiB
Python
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
|