From 4eaa094f202006a7cefc10790c42139be73d847a Mon Sep 17 00:00:00 2001 From: Philip Taron Date: Tue, 16 Sep 2025 13:30:12 -0700 Subject: [PATCH] ci.eval.compare: sort time metrics first, then GC metrics, then everything else --- ci/eval/compare/cmp-stats.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ci/eval/compare/cmp-stats.py b/ci/eval/compare/cmp-stats.py index a7b4bea793da..069f54d7fb21 100644 --- a/ci/eval/compare/cmp-stats.py +++ b/ci/eval/compare/cmp-stats.py @@ -79,8 +79,19 @@ def load_all_metrics(path: Path) -> dict: return metrics +def metric_sort_key(name: str) -> str: + if name in ("cpuTime", "time.cpu", "time.gc", "time.gcFraction"): + return (1, name) + elif name.startswith("gc"): + return (2, name) + else: + return (3, name) + + def dataframe_to_markdown(df: pd.DataFrame) -> str: - df = df.sort_values(by=df.columns[0], ascending=True) + df = df.sort_values( + by=df.columns[0], ascending=True, key=lambda s: s.map(metric_sort_key) + ) # Header (get column names and format them) headers = [str(column) for column in df.columns]