(workdir: Path, descriptors: List[BenchmarkDescriptor])
| 23 | |
| 24 | |
| 25 | def run_benchmarks(workdir: Path, descriptors: List[BenchmarkDescriptor]) -> Database: |
| 26 | workdir.mkdir(parents=True, exist_ok=True) |
| 27 | |
| 28 | database = load_or_create_database(workdir) |
| 29 | runner = BenchmarkRunner(database, workdir=workdir) |
| 30 | |
| 31 | materialized = runner.materialize_and_skip(descriptors) |
| 32 | |
| 33 | try: |
| 34 | last_save_time = time.time() |
| 35 | for _info, _result in tqdm.tqdm(runner.compute_materialized(materialized), total=len(materialized)): |
| 36 | duration = time.time() - last_save_time |
| 37 | if duration > timedelta(seconds=30).total_seconds(): |
| 38 | last_save_time = time.time() |
| 39 | runner.save() |
| 40 | except KeyboardInterrupt: |
| 41 | runner.save() |
| 42 | raise |
| 43 | |
| 44 | runner.save() |
| 45 | return database |
| 46 | |
| 47 | |
| 48 | def run_benchmarks_with_postprocessing(workdir: Path, descriptors: List[BenchmarkDescriptor]) -> Database: |
no test coverage detected