bencher run CLI 하위 명령어
bencher run
은 가장 인기 있는 CLI 하위 명령어입니다.
이는 벤치마크를 실행하고 결과를 보고하는 데 사용됩니다.
따라서 가장 복잡한 하위 명령어 중 하나입니다.
이 페이지에서는 bencher run
에 전달할 수 있는 옵션, 플래그, 인수에 대해 설명합니다.
bencher run [OPTIONS] [COMMAND] [ARGUMENTS...]
벤치마크 명령어
bencher run
의 첫 번째 인자는 선택적인 벤치마크 명령어입니다.
이는 벤치마크 하네스를 호출하여 실행될 명령어입니다.
BENCHER_CMD
환경 변수를 사용하여 설정할 수도 있습니다.
기본적으로 이 명령어는 셸에서 실행되며, 이는 --shell
및 --flag
옵션으로 구성할 수 있습니다.
그 출력은 벤치마크 하네스 어댑터에 의해 파싱되며, --adapter
옵션을 사용해 설정할 수 있습니다.
그러나, 벤치마크 하네스가 파일로 출력하는 경우, 출력 파일 경로를 지정하기 위해 반드시 --file
옵션을 사용해야 합니다.
대신 내용보다는 출력 파일(예: 바이너리 크기)의 크기를 추적하려면, 출력 파일 경로를 지정하기 위해 --file-size
옵션을 사용하세요.
명령어를 셸에서 실행하지 않길 원한다면, --exec
플래그를 사용하거나 bencher run
에 추가 인자로 명령어에 추가 인자를 제공할 수 있습니다.
Shell Form:
bencher run "bencher mock"
Exec Form:
bencher run bencher mock
--iter
옵션을 사용하면 벤치마크 명령어를 여러 번 실행할 수 있으며,
--fold
옵션을 사용하여 그 결과를 단일 결과로 합칠 수 있습니다.
반복 실행 중 하나라도 실패하면, --allow-failure
플래그가 설정되지 않은 경우 전체 명령어는 실패한 것으로 간주됩니다.
벤치마크 명령어가 지정되지 않았지만 --file
옵션이 지정된 경우, 그러면 bencher run
은 대신 출력 파일 경로에서 읽기만 할 것입니다.
마찬가지로, 벤치마크 명령어가 지정되지 않았지만 --file-size
옵션이 지정된 경우, bencher run
은 지정된 파일 경로에서 파일의 크기만 읽을 것입니다.
벤치마크 명령어, --file
옵션, 또는 --file-size
옵션 중 어느 것도 지정되지 않으면,
bencher run
은 대신 stdin
에서 읽을 것입니다.
이를 통해 다른 명령어의 출력을 파일에 저장하거나 bencher run
으로 파이프할 수 있습니다.
Options
--project <PROJECT>
선택 사항: --project
옵션이나 BENCHER_PROJECT
환경 변수가 프로젝트의 슬러그 또는 UUID로 설정될 수 있습니다. 지정된 값이 슬러그일 경우 프로젝트가 이미 존재하지 않으면 자동으로 생성됩니다. 하지만, 지정된 값이 UUID라면 프로젝트가 이미 존재해야 합니다. 둘 다 지정된 경우, --project
옵션이 BENCHER_PROJECT
환경 변수보다 우선합니다. 어느 것도 지정되지 않으면, 아래와 같은 기준으로 프로젝트 슬러그가 자동 생성됩니다:
- 가능하다면,
git
저장소의 상위 디렉터리 이름. - 가능하다면,
git
저장소의 초기 커밋에 대한 7자리 16진수 짧은 해시. - 지원되는 운영 체제의 경우, 로컬 머신의 13자리 영숫자 지문.
예를 들어, 생성된 프로젝트 슬러그는 다음과 같이 보일 수 있습니다: project-abc4567-wxyz123456789
새로운 프로젝트가 생성될 때, 슬러그가 지정되었든 생성되었든 간에, 프로젝트는 반드시 하나의 조직에 속해야 합니다. 사용자가 인증된 경우, 프로젝트는 해당 사용자의 개인 조직에 추가됩니다. 사용자가 인증되지 않은 경우, 프로젝트는 새 unclaimed
조직 하에 생성됩니다. 이 조직은 프로젝트의 공개 성능 페이지에서 또는 인증된 상태에서 후속 bencher run
호출 시 프로젝트 슬러그를 사용하여 claimed
될 수 있습니다.
--token <TOKEN>
선택 사항: --token
옵션 또는 BENCHER_API_TOKEN
환경 변수를 유효한 API 토큰으로 설정할 수 있습니다.
둘 다 지정된 경우, --token
옵션이 BENCHER_API_TOKEN
환경 변수보다 우선합니다.
둘 다 지정되지 않은 경우 프로젝트는 unclaimed
이어야 합니다.
즉, 이미 프로젝트를 claimed
했다면 유효한 API 토큰을 제공해야 합니다.
API 토큰을 생성하려면 여기를 클릭하세요.
--branch <BRANCH>
--hash <HASH>
--start-point <BRANCH>
--start-point-hash <HASH>
--start-point-max-versions <COUNT>
--start-point-clone-thresholds
--start-point-reset
자세한 내용은 브랜치 선택을 참조하세요.
--testbed <TESTBED>
선택 사항: --testbed
옵션 또는 BENCHER_TESTBED
환경 변수를 테스트베드의 이름, 슬러그 또는 UUID로 설정할 수 있습니다. 지정된 값이 이름 또는 슬러그이며 테스트베드가 아직 존재하지 않는 경우, 테스트베드가 자동으로 생성됩니다. 그러나 지정된 값이 UUID인 경우에는 테스트베드가 이미 존재해야 합니다. 둘 다 지정된 경우에는 --testbed
옵션이 BENCHER_TESTBED
환경 변수보다 우선합니다. 둘 다 지정되지 않은 경우에는 호스트 운영 체제를 기준으로 Linux
, macOS
, 또는 Windows
가 사용됩니다. bencher
CLI가 다른 운영 체제용으로 컴파일된 경우에는 기본 테스트베드로 localhost
가 사용됩니다.
--threshold-measure <MEASURE>
--threshold-test <TEST>
--threshold-min-sample-size <SAMPLE_SIZE>
--threshold-max-sample-size <SAMPLE_SIZE>
--threshold-window <WINDOW>
--threshold-lower-boundary <BOUNDARY>
--threshold-upper-boundary <BOUNDARY>
--thresholds-reset
--err
전체 개요는 임계값 및 알림을 참조하세요.
--adapter <ADAPTER>
--average <AVERAGE>
--file <FILE>
--build-time
--file-size <FILE>
전체 개요는 benchmark harness adapter를 참조하세요.
--iter <COUNT>
선택사항: 실행 반복 횟수입니다. 기본값은 1
입니다.
--fold <AGGREGATE_FUNCTION>
선택사항: 여러 결과들을 하나의 결과로 병합합니다.
필요사항: --iter
가 설정되어야 합니다.
가능한 값들:
min
: 최소값max
: 최대값mean
: 평균값median
: 중위값
--backdate <SECONDS>
선택사항: 보고서의 날짜를 과거로 변경합니다 (epoch 이후 초). 주의: 이는 과거 보고서의 순서에 영향을 줄 수 없습니다! 이는 프로젝트에 연대순서대로 역사적 데이터를 초기 씨딩할 때 유용합니다.
--allow-failure
선택사항: 벤치마크 테스트 실패를 허용합니다.
--format <FORMAT>
선택 사항: 최종 보고서의 형식.
기본 값은 human
입니다.
가능한 값:
human
: 사람이 읽을 수 있는 형식json
: JSON 형식html
: HTML 형식
--quiet
선택 사항: 조용한 모드, 최종 보고서만 출력합니다.
출력 형식을 변경하려면 --format
옵션을 사용하세요.
--github-actions <GITHUB_TOKEN>
선택 사항: GitHub API 인증 토큰을 설정하세요.
가장 편리한 방법은 GitHub Actions GITHUB_TOKEN
환경 변수를 사용하는 것입니다(예: --github-actions ${{ secrets.GITHUB_TOKEN }}
).
이 옵션이 설정되고 GitHub Actions에서 pull request의 일부로 bencher run
이 사용될 경우,
결과가 pull request에 댓글로 추가됩니다.
이 경우 토큰에 write
권한을 가진 pull-requests
범위가 필요합니다.
그렇지 않으면, 결과가 커밋에 GitHub Check로 추가됩니다.
이 경우 토큰에 write
권한을 가진 checks
범위가 필요합니다.
어느 경우건, 결과는 작업 요약에도 추가됩니다.
🐰 GitHub Action 내의 Docker 컨테이너 안에서 실행하는 경우, 다음 환경 변수를 전달하고
GITHUB_EVENT_PATH
로 지정된 경로를 마운트해야 합니다:
GITHUB_ACTIONS
GITHUB_EVENT_NAME
GITHUB_EVENT_PATH
GITHUB_SHA
GITHUB_API_URL
(GitHub Enterprise Server 전용)
--ci-only-thresholds
선택 사항: 분기, 테스트베드 및 측정에 대한 기준점이 존재하는 경우에만 CI에 결과를 게시합니다. 기준점이 존재하지 않으면 아무 것도 게시되지 않습니다. 필요 조건: --github-actions
--ci-only-on-alert
선택 사항: 경고가 생성된 경우 에만 CI에 결과 게시를 시작합니다. 경고가 생성되면 그 이후의 모든 결과도 경고를 포함하지 않더라도 게시됩니다. 필요 조건: --github-actions
--ci-id <ID>
선택 사항: CI에 결과를 게시하기 위한 사용자 정의 ID입니다. 기본적으로, Bencher는 프로젝트, 브랜치, 테스트베드 및 어댑터의 조합에 따라 결과를 자동으로 분리합니다. Bencher가 동일한 CI 워크플로우에서 동일한 프로젝트, 브랜치, 테스트베드 및 어댑터 조합으로 여러 번 실행될 때 사용자 정의 ID를 설정하는 것이 유용합니다. 필요 사항: --github-actions
--ci-number <NUMBER>
선택적: CI에 결과를 게시하기 위한 이슈 번호입니다.
Bencher는 결과를 게시하는 데 필요한 CI 이슈 번호를 자동으로 감지하려고 시도합니다.
하지만 GitHub Actions에서 workflow_run
을 사용하는 복잡한 설정에서는 항상 가능한 것은 아닙니다.
필수 조건: --github-actions
--shell <SHELL>
옵션: 쉘 명령어 경로.
기본값은 유닉스 계열 환경에서는 /bin/sh
, 윈도우에서는 cmd
입니다.
--flag <FLAG>
선택사항: 셸 명령어 플래그.
Unix 계열 환경에서는 기본값이 -c
, Windows에서는 /C
입니다.
--exec
선택 사항: 명령을 쉘 명령이 아닌 실행 가능한 명령으로 실행합니다.
bencher run
에 대한 인수의 수가 하나보다 많은 경우 기본값입니다.
--host <URL>
선택 사항: 백엔드 호스트 URL. 기본값은 Bench Cloud 입니다: https://api.bencher.dev
--insecure-host
선택 사항: Bencher API 서버에 대한 안전하지 않은 연결을 허용합니다.
이 플래그는 자체 서명된 인증서나 시스템의 인증서 저장소에 포함되지 않은 인증서를 사용하는 Bencher 셀프 호스티드 인스턴스에 연결할 때 유용합니다. 이는 본질적으로 안전하지 않은 HTTP 연결에는 적용되지 않으며, HTTPS 연결에만 해당됩니다.
경고: SSL 검증을 우회하므로 --insecure-host
는 반드시 확인된 소스와 안전한 네트워크에서만 사용하십시오. 그렇지 않으면 중간자 공격에 노출될 수 있습니다.
--native-tls
선택 사항: 플랫폼의 기본 인증서 저장소에서 TLS 인증서를 로드합니다.
기본적으로 bencher
는 포함된 webpki-roots
crate에서 인증서를 로드합니다. webpki-roots
는 Mozilla의 신뢰할 수 있는 루트 세트이며, 이를 bencher
에 포함하면 이식성과 성능이 향상됩니다. 특히 macOS에서는 시스템 신뢰 저장소를 읽는 데 상당한 지연이 발생하므로 더욱 그렇습니다.
그러나 일부 경우 플랫폼의 기본 인증서 저장소를 사용하고자 할 수 있습니다. 특히 필수 프록시나 자체 서명된 Bencher Self-Hosted 연결을 위해 시스템의 인증서 저장소에 포함된 기업 신뢰 루트를 사용하는 경우가 그러합니다.
--timeout <SECONDS>
선택 사항: 요청 제한 시간(초)입니다. 기본값은 15초입니다.
--attempts <COUNT>
선택 사항: 최대 요청 재시도 횟수입니다. 기본값은 10
회입니다.
--retry-after <SECONDS>
옵션: 시도 간 대기할 초기 초(지수 백오프).
기본값은 1
초입니다.
--dry-run
선택 사항: 드라이 런을 수행합니다. 이를 통해 백엔드에 데이터를 저장하지 않습니다. 브랜치 선택에 상세히 설명된 대로, 리포트, 브랜치 또는 테스트베드가 생성되지 않습니다.
--help
선택 사항: 도움말을 출력합니다.
🐰 축하합니다!
bencher run
의 기본사항을 배웠습니다! 🎉