Bencher를 사용한 벤치마크 추적 방법


벤치마크를 추적하는 가장 쉬운 방법은 bencher run CLI 하위 명령어입니다. 더 깊은 이해를 위해 벤치마킹 개요를 참조하십시오. 다음은 feature-branch라는 적절한 이름의 기능 브랜치에서 벤치마크를 추적하기 위한 bencher run CLI 하위 명령어 예시입니다:

bencher run \
--project save-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch feature-branch \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
  1. 프로젝트는 이미 존재해야 합니다. 프로젝트 slug나 UUID를 지정하기 위해 --project 플래그나 BENCHER_PROJECT 환경 변수를 설정하세요. (예: --project save-walter-white)
  2. API 토큰이 이미 존재해야 합니다. API 토큰을 지정하기 위해 --token 플래그나 BENCHER_API_TOKEN 환경 변수를 설정하세요. (예: --token ...)
  3. 선택사항: 원하는 어댑터 이름을 지정하기 위해 --adapter 플래그나 BENCHER_ADAPTER 환경 변수를 설정하세요. 이 항목이 설정되지 않으면 magic 어댑터가 사용됩니다. 벤치마크 하네스 어댑터들에 대한 전체 개요를 확인하세요. (예: --adapter json)
  4. 프로젝트 브랜치를 설정하는 데에는 몇 가지 옵션이 있습니다. 브랜치 선택에 대한 전체 개요를 확인하세요.
    1. 현재 브랜치를 사용하시면 이미 존재합니다. (예: --if-branch feature-branch)
    2. 타겟 브랜치의 데이터를 복제하면 이미 존재합니다. (예: --else-if-branch main)
    3. 그 외의 경우, --if-branch에 제공된 이름을 가진 새로운 브랜치를 생성합니다. 이 경우 feature-branch가 됩니다. (예: --else-branch)
  5. 선택사항: --testbed 플래그나 BENCHER_TESTBED 환경 변수를 Testbed slug나 UUID로 설정하세요. Testbed는 이미 존재해야 합니다. 이 항목이 설정되지 않으면 기본적으로 localhost Testbed가 사용됩니다. (예: --testbed phoenix)
  6. 경고가 생성될 경우 명령이 실패하도록 설정하세요. 경고가 생성되기 위해서는 Threshold가 이미 존재해야 합니다. (예: --err)
  7. 벤치마크를 실행하고 결과로 보고서를 생성하세요. (예: "bencher mock")

상대 벤치마킹

상대 벤치마킹은 두 커밋의 나란한 비교를 실행합니다. 이는 리소스 사용 가능성이 실행 사이에 크게 변할 수 있는 노이즈가 많은 CI/CD 환경에서 유용할 수 있습니다. 다음은 feature-branch라는 적절한 이름의 기능 브랜치에서 상대 벤치마킹을 실행하기 위한 bencher run CLI 하위 명령어 예시입니다:

git checkout feature-branch

export FEATURE_BRANCH=feature-branch-$(git rev-parse --short HEAD)

git checkout main

bencher run \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--iter 3 \
"bencher mock"

git checkout feature-branch

bencher threshold create \
--metric-kind latency \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--test t \
--right-side 0.95

bencher run \
--if-branch "$FEATURE_BRANCH" \
--iter 3 \
--fold min \
--err \
"bencher mock"
  1. 기능 브랜치를 체크아웃하세요. (예: feature-branch)
  2. 기능 브랜치 이름과 짧은 git commit ID를 연결한 환경 변수를 생성하세요. 이는 중요합니다! 각 실행마다 새 브랜치가 생성되도록 보장합니다.
  3. 타겟 브랜치를 체크아웃하세요. (예: main)
  4. 타겟 브랜치를 위해 bencher run을 실행합니다:
    1. 제공된 브랜치는 아직 존재하지 않을 것입니다. (예: --if-branch "$FEATURE_BRANCH")
    2. 그래서 생성될 것입니다. (예: --else-branch)


🐰 축하합니다! 벤치마크 추적을 위해 Bencher 사용 방법을 배웠습니다! 🎉


GitHub Actions에 Bencher 추가하기 ➡

GitLab CI/CD에 Bencher 추가하기 ➡

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