Rust 개발 사례에서 중첩된 오류 타입의 자동 생성 Debug 구현을 인라인하지 않도록 바꾸자 uv 바이너리가 약 160KB 줄었다. derive가 만든 메서드에 붙는 inline 힌트 때문에 큰 포맷팅 코드가 여러 호출 지점에 반복될 수 있다는 설명이다. 공식 레퍼런스도 Clone 생성 예제에 inline을 보여주지만 모든 파생 구현의 영구적 보장은 아니다. 간단한 메서드는 인라이닝이 유리하므로 사용자 정의 매크로의 적용은 해당 코드의 크기와 성능을 비교해 결정해야 한다.
Tech로 돌아가기
Tech
Rust Debug 인라이닝 조정, uv 바이너리 160KB 축소
자동 생성 코드도 크기 비용을 만들 수 있으므로 인라이닝을 일괄 차단하기보다 실제 결과를 측정해야 한다.