aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/algorithms/timer.py
diff options
context:
space:
mode:
Diffstat (limited to 'algorithms/timer.py')
-rw-r--r--algorithms/timer.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/algorithms/timer.py b/algorithms/timer.py
new file mode 100644
index 0000000..d334b94
--- /dev/null
+++ b/algorithms/timer.py
@@ -0,0 +1,23 @@
+# Copyright 2016 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is licensed under the terms of the MIT License.
+# See LICENSE.txt for details.
+
+import gc, time
+
+def get_timestamp():
+ return time.perf_counter()
+
+class Timer:
+ def __init__(self, dest, iterations=1):
+ self._dest = dest
+ self._iterations = iterations
+
+ def __enter__(self):
+ gc.disable()
+ self._start = get_timestamp()
+ return self
+
+ def __exit__(self, *args):
+ end = get_timestamp()
+ gc.enable()
+ self._dest.append((end - self._start) / self._iterations)