Show GN: cargo-chronoscope - Cargo 빌드 성능 옵저버 (TUI + GitHub Action)
(github.com/ymw0407)Rust 프로젝트의 cargo build 시간이 PR마다 야금야금 늘어나는데 어느 PR이 원인인지 추적하기 번거로워 만들었습니다.
cargo-chronoscope은 cargo의 JSON 이벤트 스트림(--message-format=json-render-diagnostics)을 소비해 모든 빌드를 로컬 SQLite DB에 기록하고, 4가지 방식으로 분석하는 CLI입니다.
4개 서브커맨드
record— 빌드 한 번을 그대로 기록watch— 빌드 중 ratatui 기반 TUI 대시보드. 활성 컴파일별 elapsed time, anomaly 분류(평소보다 느림/빠름/정상), CPU·메모리 실시간 표시. (데모 GIF는 README 최상단에 있습니다.)ls— 최근 빌드 목록diff <before> <after>— 두 빌드 간 per-crate 변동량 + critical path 비교
cargo --timings와 다른 점
내장 cargo --timings는 한 번의 빌드 타임라인. cargo-chronoscope은 빌드 간 비교와 회귀 감지에 특화 — 과거 빌드들의 평균±2σ를 베이스라인으로 잡고 현재 빌드를 자동 분류합니다.
GitHub Action 통합
- uses: ymw0407/cargo-chronoscope@action-v1
한 줄로 PR마다 빌드 시간 diff를 sticky 코멘트로 자동 게시합니다. fork PR도 지원 (workflow_run 패턴).
설치
cargo install cargo-chronoscope
현재 상태
- v0.1.7, crates.io 등록 완료
- Rust 공식 2025 H2 "Cargo build analysis" 목표의 외부 도구 트랙에 해당
- GitHub: https://github.com/ymw0407/cargo-chronoscope
피드백/이슈 환영합니다.