Skip to content

CI: add binary size to the PR metrics comparison#109

Merged
typeless merged 1 commit into
mainfrom
ci/binary-size-metrics
Jul 18, 2026
Merged

CI: add binary size to the PR metrics comparison#109
typeless merged 1 commit into
mainfrom
ci/binary-size-metrics

Conversation

@typeless

Copy link
Copy Markdown
Owner

Adds a Binary size (Linux) section to the sticky PR metrics comment: .text / .data / .bss (from size -B) and file bytes for build/putup, with percentage deltas against the last successful main run — the same baseline mechanism as the perf and coverage sections.

Collection runs in build-linux right after the bootstrap build (also echoed to that job's step summary), so the size is measured on the exact binary the other jobs test. Section sizes are fully deterministic across runs; file size additionally tracks symbol/debug-info changes.

Verified locally: metrics size build/putup produces the TSV (.text 496.4 KB on current main), and render produces the annotated table with and without a baseline; combined perf+size render checked; workflow YAML parses.

🤖 Generated with Claude Code

https://claude.ai/code/session_01U5KUoGDhJEZYoiK9CkeXtz

A new 'size' subcommand records .text/.data/.bss (size -B) and file
bytes for the Linux putup binary; build-linux uploads the TSV and the
sticky PR comment renders it with percentage deltas against the last
successful main run, alongside the perf and coverage sections.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5KUoGDhJEZYoiK9CkeXtz
@github-actions

Copy link
Copy Markdown

PR metrics

Performance (gcc example, Linux)

Workload Instructions CPU time Page faults D1 miss LL miss Wall Peak RSS
parse n/a 0.36 s 14.1 k 1.1% 0.1% 0.359 s 32.8 MB
dry-run n/a 0.54 s 18.6 k 1.6% 0.1% 0.554 s 49.8 MB (+0.2MB)

Deterministic signals: page faults, peak RSS, and the cachegrind D1/LL miss rates (simulated cache, exact across runs). CPU time is user+sys from time(1); instructions read n/a on GitHub-hosted runners (virtualized, no PMU).

Binary size (Linux)

Binary .text .data .bss File
putup 453.1 KB 2 KB 96.5 KB 533.8 KB

Test coverage (lines)

Overall Median file Min file Max file
85.1% 94.3% 0.0% include/pup/core/metrics.hpp 100.0% include/pup/core/arena.hpp

93 files · 13697/16104 lines covered

Deltas vs main@35e6b1d9e.

Updated for 95f0128

@typeless
typeless merged commit c47cc80 into main Jul 18, 2026
11 checks passed
@typeless
typeless deleted the ci/binary-size-metrics branch July 18, 2026 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant