diff --git a/.github/scripts/bench_logs_to_pages.py b/.github/scripts/bench_logs_to_pages.py new file mode 100644 index 0000000000..4331afe26d --- /dev/null +++ b/.github/scripts/bench_logs_to_pages.py @@ -0,0 +1,833 @@ +#!/usr/bin/env python3 +"""Parse db_bench / memtablerep_bench logs and maintain GitHub Pages site trees. + +Supports multi-engine comparison (topling / topling-dictzip10 / rocksdb-*). +""" + +from __future__ import annotations + +import argparse +import html +import json +import re +import shutil +from datetime import datetime, timezone +from pathlib import Path +from typing import Any, Dict, List, Optional, Tuple + +DB_BENCH_RE = re.compile( + r"^(?P\S+)\s*:\s*" + r"(?P[\d.]+)\s+micros/op\s+" + r"(?P\d+)\s+ops/sec\s+" + r"(?P[\d.]+)\s+seconds\s+" + r"(?P\d+)\s+operations;" + r"(?P.*)$" +) +RUNNING_RE = re.compile(r"^Running\s+(?P\S+)\s*$") +METRIC_RE = re.compile( + r"^(?P