AI 요약
개발자 Lalit Maganti가 Linux에서 소프트웨어 컴파일 시 시간이 어디에 소요되는지 시각화해주는 오픈소스 트레이싱 도구 'buildprof'를 개발했다. buildprof는 빌드 명령 앞에 buildprof --를 붙여 실행하면 모든 프로세스와 하위 프로세스를 하나의 타임라인에 기록해 병렬성 부족, 반복 작업, 의존성 다운로드, 과도한 컴파일러·링커 호출 등을 한눈에 파악할 수 있게 해준다. 개발자는 Bun 런타임의 Zig 빌드가 Rust 빌드보다 5배 이상 느리다는 주장을 검증하려다 이 도구를 만들게 됐다. 실제로 Bun 1.3.14(Zig)와 1.4.0(Rust)의 Linux x64 빌드를 재현한 결과 Zig 시대 약 24분, Rust 시대 약 5분 40초로 유사한 격차가 확인됐다.
핵심 포인트
- buildprof는
buildprof -- make -j16,buildprof -- cargo build등 기존 빌드 명령 앞에 붙여 사용하는 오픈소스 트레이싱 도구 - 모든 프로세스와 하위 프로세스를 하나의 타임라인에 시각화(시간은 좌→우, 막대 너비는 지속 시간, 자식 프로세스는 부모 아래 표시)
- Bun 1.3.14(Zig, Full LTO) 약 24분 24초 vs Bun 1.4.0(Rust, ThinLTO) 약 5분 40초로 재현
- Jarred Sumner(Bun 수석 아키텍트)의 트윗에서 언급된 Full LTO vs ThinLTO 차이가 빌드 시간에 큰 영향
향후 전망
- buildprof를 통해 빌드 병목을 시각적으로 파악함으로써 개발자들이 병렬성 개선, 반복 작업 제거 등 최적화 우선순위를 명확히 설정할 수 있을 것으로 기대된다.
- LTO 방식(Full vs Thin) 차이가 빌드 시간에 미치는 영향에 대한 추가 분석이 이어질 가능성이 있다.
