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:

Terminal window
bencher run "bencher mock"

Exec Form:

Terminal window
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로 설정되어야 합니다. 둘 다 정의된 경우, --project 옵션이 BENCHER_PROJECT 환경 변수보다 우선순위를 가집니다.


--token <TOKEN>


--token 옵션 또는 BENCHER_API_TOKEN 환경 변수는 유효한 API 토큰으로 설정되어야 합니다. 둘 다 정의된 경우, --token 옵션이 BENCHER_API_TOKEN 환경 변수보다 우선순위를 가집니다.


--branch <BRANCH>

--hash <HASH>

--no-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로 설정할 수 있습니다. 둘 다 정의된 경우, --testbed 옵션이 BENCHER_TESTBED 환경 변수보다 우선순위를 가집니다. 둘 다 정의되지 않은 경우, 기본 테스트베드로 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의 기본사항을 배웠습니다! 🎉


bencher run으로 Branch 선택하기 ➡ 계속 진행하세요.

🤖 이 문서는 OpenAI GPT-4에 의해 자동으로 생성되었습니다. 정확하지 않을 수도 있고 오류가 있을 수도 있습니다. 오류를 발견하면 GitHub에서 문제를 열어주세요.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, February 20, 2025 at 9:12:00 PM UTC