aboutsummaryrefslogtreecommitdiffstats
path: root/modules/timer.py
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2023-01-27 08:28:12 +0000
committerAUTOMATIC <16777216c@gmail.com>2023-01-27 08:28:12 +0000
commitd2ac95fa7b2a8d0bcc5361ee16dba9cbb81ff8b2 (patch)
tree056355bca8b5ff3071f4aec4a0c4d725f026413a /modules/timer.py
parent7a14c8ab45da8a681792a6331d48a88dd684a0a9 (diff)
downloadstable-diffusion-webui-gfx803-d2ac95fa7b2a8d0bcc5361ee16dba9cbb81ff8b2.tar.gz
stable-diffusion-webui-gfx803-d2ac95fa7b2a8d0bcc5361ee16dba9cbb81ff8b2.tar.bz2
stable-diffusion-webui-gfx803-d2ac95fa7b2a8d0bcc5361ee16dba9cbb81ff8b2.zip
remove the need to place configs near models
Diffstat (limited to 'modules/timer.py')
-rw-r--r--modules/timer.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/timer.py b/modules/timer.py
new file mode 100644
index 00000000..57a4f17a
--- /dev/null
+++ b/modules/timer.py
@@ -0,0 +1,35 @@
+import time
+
+
+class Timer:
+ def __init__(self):
+ self.start = time.time()
+ self.records = {}
+ self.total = 0
+
+ def elapsed(self):
+ end = time.time()
+ res = end - self.start
+ self.start = end
+ return res
+
+ def record(self, category, extra_time=0):
+ e = self.elapsed()
+ if category not in self.records:
+ self.records[category] = 0
+
+ self.records[category] += e + extra_time
+ self.total += e + extra_time
+
+ def summary(self):
+ res = f"{self.total:.1f}s"
+
+ additions = [x for x in self.records.items() if x[1] >= 0.1]
+ if not additions:
+ return res
+
+ res += " ("
+ res += ", ".join([f"{category}: {time_taken:.1f}s" for category, time_taken in additions])
+ res += ")"
+
+ return res