Docker와 cargo-chef를 이용해 Rust 의존성을 별도 캐시에 저장하고, 코드 변경 시 재빌드 범위를 최소화
rustc -Zself-profile 및 measureme 툴(flamegraph, summarize)로 컴파일 병목 지점(LTO, LLVM_module_optimize) 식별
LTO 설정(lto=off, thin/fat LTO)과 디버그 심볼(debug=none/full) 변경으로 컴파일 시간 175s→50s 단축
릴리스 프로필의 opt-level 조정을 통해 최종 바이너리 최적화 수준 관리(opt-level=0 시 14.7s, opt-level=1 시 48.8s)
-C llvm-args 인라이닝 임계치(inline-threshold 등) 튜닝으로 빌드 시간 48.8s→40.7s 개선
-Zllvm-time-trace로 생성된 Chrome trace JSON을 JSONL로 변환해 jq와 rustfilt로 패스별, 함수별 소요 시간 분석
Symbol Mangling v0 활성화로 async 함수 및 제네릭 기호 해석 개선, 병목 함수(클로저) 정확히 식별
대형 async 함수 분할 및 Pin<Box<dyn Future>> 방식으로 제어 흐름 단순화해 특정 함수 최적화, 전체 빌드 48.8s→46.8s 향상
pulldown_cmark·lol_html 등 제네릭 종속 호출을 비제네릭 API로 대체해 추가 최적화, 최종 빌드 32.3s 달성
Get notified when new stories are published for "🇰🇷 Hacker News 한국어"