Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

성능 테스트

성능 고려 사항

컴파일러 성능은 중요합니다. 저희는 지난 몇 년간 컴파일러 성능을 점진적으로 개선하는 데 많은 노력을 기울여 왔습니다.

변경 사항이 성능 회귀(또는 개선)를 일으킬 수 있다고 의심된다면 “perf 실행“을 요청할 수 있습니다(리뷰어도 승인하기 전에 perf 실행을 요청할 수 있습니다). 이것은 변경 사항이 적용된 컴파일러로 벤치마크 모음을 컴파일하는 또 하나의 봇입니다. 수치는 여기에 보고되며, 변경 사항을 최신 main과 비교한 결과를 볼 수 있습니다.

rustc 개발에도 유용한 Rust 코드 성능 전반에 대한 소개는 The Rust Performance Book을 참조하십시오.

rustc-perf

컴파일러의 성능을 개선하고 성능 회귀를 방지하는 데 많은 노력이 들어갑니다.

rustc-perf 프로젝트는 성능을 테스트하고 추적하기 위한 여러 서비스를 제공합니다. 이 프로젝트는 벤치마크를 서비스 형태로 실행하기 위한 호스팅 인프라를 제공합니다. 현재는 x86_64-unknown-linux-gnu 빌드만 추적합니다.

“perf 실행“은 널리 쓰이는 대규모 크레이트 모음에 대해 다양한 구성에서 컴파일러의 성능을 비교하는 데 사용됩니다. 다양한 구성에는 “새 빌드”, 증분 컴파일을 사용한 빌드 등이 있습니다.

perf 실행의 결과는 (커밋 해시로 식별되는) 두 버전의 컴파일러 간 비교입니다.

rustc-perf를 사용하여 로컬에서 컴파일러를 직접 벤치마크하고 프로파일링할 수도 있습니다.

자동 perf 실행

모든 PR이 병합된 후에는 컴파일러를 대상으로 벤치마크 모음이 실행됩니다. 결과는 https://perf.rust-lang.org/ 웹사이트에서 시간에 따라 추적됩니다. 변경 사항이 있으면 PR에 댓글로 기록됩니다.

수동 perf 실행

또한 필요에 따라 PR이 병합되기 전에 성능 테스트를 실행할 수도 있습니다. PR이 성능에 영향을 줄 수 있다면, 특히 성능에 악영향을 줄 수 있다면 perf 실행을 요청해야 합니다.

PR의 성능 영향을 평가하려면 PR에 다음 댓글을 작성하십시오.

@bors try @rust-timer queue

참고: perf 실행 권한이 있는 사용자만 이 댓글을 게시할 수 있습니다. 이를 사용할 수 있는 팀은 Teams 저장소에서 [permissions] 섹션의 perf = true 값으로 관리됩니다(bors 권한도 필요합니다). 해당 팀에 속해 있지 않다면 다른 사람에게 대신 게시해 달라고 부담 없이 요청하십시오(Zulip에서 요청하거나 배정된 리뷰어에게 요청하십시오).

이 댓글은 먼저 bors에게 x86_64-unknown-linux-gnu용 전체 릴리스 빌드를 수행하는 “try” 빌드를 하도록 지시합니다. 빌드가 끝나면 해당 빌드를 대상으로 성능 테스트 모음을 실행하도록 대기열에 넣습니다. 성능 테스트가 끝나면 봇이 요약과 전체 보고서 링크가 담긴 댓글을 PR에 게시합니다.

이미 빌드된 산출물(예: 아직 벤치마크되지 않은 이전 try 빌드)에 대해 perf 실행을 하려면 대신 다음을 실행할 수 있습니다:

@rust-timer build <commit-sha>

다만 같은 산출물을 두 번 벤치마크할 수는 없습니다.

사용할 수 있는 perf 봇 명령에 대한 자세한 정보는 여기에서 확인할 수 있습니다.

벤치마킹 과정 자체에 대한 더 자세한 내용은 perf collector 문서에서 확인할 수 있습니다.