Skip to content

Commit 0fe33d7

Browse files
committed
Make benchmark sections collapsible, remove Performance Guidelines
- Wrap each section in <details>/<summary> tags - Keep "Changes from Base Branch" open by default - All other sections collapsed by default - Remove Performance Guidelines section
1 parent 564a0b4 commit 0fe33d7

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

.github/workflows/benchmarks.yml

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,8 @@ jobs:
282282
283283
# Comparison section (only for PRs with base results)
284284
if is_pr and base_results:
285-
output.append("## 📊 Changes from Base Branch\n")
285+
output.append("<details open>")
286+
output.append("<summary><h2>📊 Changes from Base Branch</h2></summary>\n")
286287
output.append("*Only showing statistically significant changes (p < 0.05)*\n")
287288
output.append("| Operation | Base | PR | Change |")
288289
output.append("|-----------|------|-----|--------|")
@@ -316,13 +317,16 @@ jobs:
316317
elif len([c for c in changes if c[2] < 0.05]) > 15:
317318
sig_count = len([c for c in changes if c[2] < 0.05])
318319
output.append(f"\n*Showing top 15 of {sig_count} significant changes*")
319-
output.append("")
320+
output.append("\n</details>\n")
320321
elif is_pr and not base_results:
321-
output.append("## 📊 Changes from Base Branch\n")
322+
output.append("<details open>")
323+
output.append("<summary><h2>📊 Changes from Base Branch</h2></summary>\n")
322324
output.append("*No benchmarks in base branch - showing PR results only*\n")
325+
output.append("</details>\n")
323326
324327
# Backtrace section
325-
output.append("## Stack Capture (KSBacktrace)\n")
328+
output.append("<details>")
329+
output.append("<summary><h2>Stack Capture (KSBacktrace)</h2></summary>\n")
326330
output.append("| Operation | Time | Status | Notes |")
327331
output.append("|-----------|------|--------|-------|")
328332
@@ -341,8 +345,11 @@ jobs:
341345
status = get_status(t, excellent=0.0001, good=0.001, ok=0.005)
342346
output.append(f"| {desc} | {format_time(t)} | {status} | {notes} |")
343347
348+
output.append("\n</details>")
349+
344350
# Dynamic Linker section
345-
output.append("\n## Dynamic Linker (KSDynamicLinker)\n")
351+
output.append("<details>")
352+
output.append("<summary><h2>Dynamic Linker (KSDynamicLinker)</h2></summary>\n")
346353
output.append("| Operation | Time | Status | Notes |")
347354
output.append("|-----------|------|--------|-------|")
348355
@@ -370,8 +377,11 @@ jobs:
370377
status = get_status(t, excellent=0.001, good=0.005, ok=0.020)
371378
output.append(f"| {desc} | {format_time(t)} | {status} | {notes} |")
372379
380+
output.append("\n</details>")
381+
373382
# Memory section
374-
output.append("\n## Safe Memory Operations (KSMemory)\n")
383+
output.append("<details>")
384+
output.append("<summary><h2>Safe Memory Operations (KSMemory)</h2></summary>\n")
375385
output.append("| Operation | Time | Per-Call | Status |")
376386
output.append("|-----------|------|----------|--------|")
377387
@@ -394,8 +404,11 @@ jobs:
394404
status = get_status(per_call, excellent=0.000001, good=0.00001, ok=0.0001)
395405
output.append(f"| {desc} | {format_time(t)} | {format_time(per_call)} | {status} |")
396406
407+
output.append("\n</details>")
408+
397409
# JSON section
398-
output.append("\n## JSON Encoding (KSJSONCodec)\n")
410+
output.append("<details>")
411+
output.append("<summary><h2>JSON Encoding (KSJSONCodec)</h2></summary>\n")
399412
output.append("| Operation | Time | Status | Notes |")
400413
output.append("|-----------|------|--------|-------|")
401414
@@ -418,8 +431,11 @@ jobs:
418431
status = get_status(t, excellent=0.0005, good=0.002, ok=0.010)
419432
output.append(f"| {desc} | {format_time(t)} | {status} | {notes} |")
420433
434+
output.append("\n</details>")
435+
421436
# Thread section
422-
output.append("\n## Thread Operations (KSThread)\n")
437+
output.append("<details>")
438+
output.append("<summary><h2>Thread Operations (KSThread)</h2></summary>\n")
423439
output.append("| Operation | Time | Per-Call | Status |")
424440
output.append("|-----------|------|----------|--------|")
425441
@@ -440,8 +456,11 @@ jobs:
440456
status = get_status(per_call, excellent=0.0000005, good=0.000005, ok=0.00001)
441457
output.append(f"| {desc} | {format_time(t)} | {format_time(per_call)} | {status} |")
442458
459+
output.append("\n</details>")
460+
443461
# Crash Report section
444-
output.append("\n## Crash Report Writing (KSCrashReport)\n")
462+
output.append("<details>")
463+
output.append("<summary><h2>Crash Report Writing (KSCrashReport)</h2></summary>\n")
445464
output.append("| Operation | Time | Status | Notes |")
446465
output.append("|-----------|------|--------|-------|")
447466
@@ -457,14 +476,7 @@ jobs:
457476
status = get_status(t, excellent=0.005, good=0.010, ok=0.050)
458477
output.append(f"| {desc} | {format_time(t)} | {status} | {notes} |")
459478
460-
# Performance guide
461-
output.append("\n## Performance Guidelines")
462-
output.append("### Crash Capture Budget")
463-
output.append("- ✅ **Excellent**: Operations complete in microseconds")
464-
output.append("- ✅ **Good**: Acceptable for crash-time execution")
465-
output.append("- ⚠️ **OK**: May impact crash capture latency")
466-
output.append("- ❌ **Review**: Too slow for crash-time, consider optimization")
467-
output.append("\n*Goal: Complete crash capture <100ms to minimize data loss risk*")
479+
output.append("\n</details>")
468480
469481
# Summary
470482
total_tests = len(pr_results) if pr_results else 0

0 commit comments

Comments
 (0)