aboutsummaryrefslogtreecommitdiff
path: root/test/ec/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ec/utils.py')
-rw-r--r--test/ec/utils.py74
1 files changed, 0 insertions, 74 deletions
diff --git a/test/ec/utils.py b/test/ec/utils.py
index c702d5b..67a9cc0 100644
--- a/test/ec/utils.py
+++ b/test/ec/utils.py
@@ -1,12 +1,5 @@
-import pstats
-import sys
-
-from pathlib import Path
-from subprocess import run, PIPE, DEVNULL
from itertools import product
from functools import reduce
-from pyinstrument import Profiler as PyProfiler
-from cProfile import Profile as cProfiler
def slow(func):
@@ -17,70 +10,3 @@ def slow(func):
def cartesian(*items):
for cart in product(*items):
yield reduce(lambda x, y: x + y, cart)
-
-
-class Profiler(object):
- def __init__(self, prof_type, output_directory, benchmark_name):
- self._prof = PyProfiler() if prof_type == "py" else cProfiler()
- self._prof_type = prof_type
- self._root_frame = None
- self._state = None
- self._output_directory = output_directory
- self._benchmark_name = benchmark_name
-
- def __enter__(self):
- self._prof.__enter__()
- self._state = "in"
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- self._prof.__exit__(exc_type, exc_val, exc_tb)
- if self._prof_type == "py":
- self._root_frame = self._prof.last_session.root_frame()
- self._state = "out"
- self.output()
- self.save()
-
- def save(self):
- if self._state != "out":
- raise ValueError
- if self._output_directory is None or self._benchmark_name is None:
- return
- git_commit = (
- run(
- ["git", "rev-parse", "--short", "HEAD"],
- stdout=PIPE,
- stderr=DEVNULL,
- check=False,
- )
- .stdout.strip()
- .decode()
- )
- git_dirty = (
- run(
- ["git", "diff", "--quiet"], stdout=DEVNULL, stderr=DEVNULL, check=False
- ).returncode
- != 0
- )
- version = git_commit + ("-dirty" if git_dirty else "")
- output_path = Path(self._output_directory) / (self._benchmark_name + ".csv")
- with output_path.open("a") as f:
- f.write(
- f"{version},{'.'.join(map(str, sys.version_info[:3]))},{self.get_time()}\n"
- )
-
- def output(self):
- if self._state != "out":
- raise ValueError
- if self._prof_type == "py":
- print(self._prof.output_text(unicode=True, color=True))
- else:
- self._prof.print_stats("cumtime")
-
- def get_time(self):
- if self._state != "out":
- raise ValueError
- if self._prof_type == "py":
- return self._root_frame.time()
- else:
- return pstats.Stats(self._prof).total_tt