Как использовать Bencher для отслеживания бенчмарков
Самый простой способ отслеживания ваших бенчмарков - это подкоманда CLI bencher run
.
Смотрите обзор бенчмаркинга для более глубокого понимания.
Это пример подкоманды CLI bencher run
для отслеживания бенчмарков на особенно названной ветке feature-branch
:
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"`
- Проект должен уже существовать. Установите флаг
--project
или переменную средыBENCHER_PROJECT
в идентификатор проекта или UUID. (например:--project save-walter-white
) - Токен API уже должен существовать. Установите флаг
--token
или переменную окруженияBENCHER_API_TOKEN
в токен API. (например:--token ...
) - Опционально: установите флаг
--adapter
или переменную окруженияBENCHER_ADAPTER
на желаемое имя адаптера. Если это не установлено, то будет использован адаптерmagic
. Смотрите адаптеры для установки бенчмарков для полного обзора. (например:--adapter json
) - Есть несколько вариантов для установки ветки проекта. Смотрите выбор ветки для полного обзора.
- Используйте текущую ветку, если она уже существует. (например:
--if-branch feature-branch
) - Создайте клон данных целевой ветки, если он уже существует. (например:
--else-if-branch main
) - В противном случае, создайте новую ветку с именем, указанным в
--if-branch
, которое будетfeature-branch
. (например:--else-branch
)
- Используйте текущую ветку, если она уже существует. (например:
- Опционально: установите флаг
--testbed
или переменную окруженияBENCHER_TESTBED
в идентификатор тестового стенда или UUID. Тестовый стенд уже должен существовать. Если это не установлено, то будет использован стандартный тестовый стендlocalhost
. (например:--testbed phoenix
) - Установите команду на неудачу, если будет сгенерировано предупреждение. Чтобы предупреждение было сгенерировано, Порог уже должен существовать. (например:
--err
) - Запустите свои бенчмарки и сгенерируйте отчет из результатов. (например:
"bencher mock"
)
Относительный Бенчмаркинг
Относительный бенчмаркинг выполняет подряд сравнение двух коммитов.
Это может быть полезно при работе с шумными средами CI/CD,
где ресурс, доступный, может очень варьироваться между запусками.
Это пример подкоманды CLI bencher run
для выполнения относительного бенчмаркинга на особо названной ветке feature-branch
:
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"
- Переключитесь на ветку с функциями. (например,
feature-branch
) - Создайте переменную окружения, которая является именем функциональной ветки, соединенной с коротким идентификатором коммита git. Это важно! Это гарантирует, что для каждого запуска создается новая ветка.
- Переключитесь на целевую ветку. (например,
main
) - Запустите
bencher run
для целевой ветки:- Указанная ветка еще не существует. (например,
--if-branch "$FEATURE_BRANCH"
) - Поэтому она будет создана. (например,
--else-branch
) - Запустите бенчмарки три раза. (например,
--iter 3
)
- Указанная ветка еще не существует. (например,
- Переключитесь на ветку с функциями. (например,
feature-branch
) - Создайте Порог для ветки с функциями:
- Вид метрики для бенчмарков - Задержка. (например,
--metric-kind latency
) - Ветка - это ветка с функциями с прикрепленным идентификатором коммита git. (например,
--branch "$FEATURE_BRANCH"
) - Тестовый стенд работает локально. (например,
--testbed localhost
) - Существует менее 30 метрик, используйте t-тест Стьюдента. (например,
--test t
) - Установите правую границу 95.0%, потому что большая задержка указывает на регрессию производительности. (например,
--right-side 0.95
)
- Вид метрики для бенчмарков - Задержка. (например,
- Запустите
bencher run
для ветки с функциями:- Ветка будет существовать, так как она только что была создана. (например,
--if-branch "$FEATURE_BRANCH"
) - Запустите тесты три раза. (например,
--iter 3
) - Сложите все три метрики в минимальное значение. (например,
--fold min
) - Установите команду на неудачу, если предупреждение сгенерировано Порогом. (например,
--err
)
- Ветка будет существовать, так как она только что была создана. (например,
🐰 Поздравляем! Вы научились использовать Bencher для отслеживания бенчмарков! 🎉
Добавьте Bencher в GitHub Actions ➡
Добавьте Bencher в GitLab CI/CD ➡
🤖 Этот документ был автоматически создан OpenAI GPT-4. Оно может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.