Как отслеживать бенчмарки Rust Iai в CI
Everett Pompeii
Теперь, когда вы узнали как проводить бенчмаркинг Rust кода с помощью Iai, давайте посмотрим, как отслеживать эти бенчмарки в CI. Непрерывный бенчмаркинг — это практика запуска бенчмарков для каждого набора изменений, чтобы убедиться, что изменения не вводят регрессии производительности. Самый простой способ реализовать Непрерывный бенчмаркинг с бенчмарками Criterion — использовать Bencher.
Что такое Bencher?
Bencher - это набор инструментов для непрерывного тестирования производительности. Когда-нибудь регрессия производительности влияла на ваших пользователей? Bencher мог бы предотвратить это. Bencher позволяет вам обнаруживать и предотвращать регрессии производительности до того, как они попадут в продакшн.
- Запустить: Запустите свои тесты производительности локально или в CI, используя ваши любимые инструменты для этого. CLI
bencher
просто оборачивает ваш существующий аппарат тестирования и сохраняет его результаты. - Отслеживать: Отслеживайте результаты ваших тестов производительности со временем. Мониторите, запрашивайте и строите графики результатов с помощью веб-консоли Bencher на основе ветки исходного кода, испытательного стенда и меры.
- Поймать: Отлавливайте регрессии производительности в CI. Bencher использует инструменты аналитики, работающие по последнему слову техники, чтобы обнаружить регрессии производительности, прежде чем они попадут в продакшн.
По тем же причинам, по которым модульные тесты запускаются в CI, чтобы предотвратить регрессии функций, тесты производительности должны быть запущены в CI с Bencher, чтобы предотвратить регрессии производительности. Ошибки производительности – это тоже ошибки!
Шаги для Bencher Cloud
- Создайте учетную запись Bencher Cloud.
- Создайте API-токен и добавьте его в ваш CI как секрет.
- Создайте рабочий процесс для вашего CI, как GitHub Actions или GitLab CI/CD.
- Установите Bencher CLI в вашем рабочем процессе CI.
- Запустите ваши тесты производительности с помощью
bencher run
подкоманды в вашем рабочем процессе CI, используя адаптерrust_iai
.
Шаги для Bencher Self-Hosted
- Создайте экземпляр Bencher Self-Hosted.
- Зарегистрируйте аккаунт на вашем экземпляре Bencher Self-Hosted.
- Создайте API токен и добавьте его в CI как секрет.
- Создайте рабочий процесс для вашего CI, например GitHub Actions или GitLab CI/CD.
- Установите Bencher CLI в ваш CI рабочий процесс. Убедитесь, что версия CLI соответствует версии вашего экземпляра Bencher Self-Hosted.
- Запустите ваши бенчмарки с помощью
bencher run
подкоманды в вашем CI рабочем процессе, используя адаптерrust_iai
и указывая опцию--host
на URL вашего экземпляра Bencher Self-Hosted.
🦀 Rust Iai
Адаптер Rust Iai (rust_iai
) ожидает вывод Iai.
Собираются показатели instructions
, l1-accesses
, l2-accesses
, ram-accesses
и estimated-cycles
.
Доступны только эти показатели (т.е. value
). Нет показателей lower_value
и upper_value
.
Показатели для этого адаптера не создаются по умолчанию для всех проектов.
Однако, когда вы используете этот адаптер, эти показатели будут автоматически созданы для вашего проекта.
Track your benchmarks in CI
Have you ever had a performance regression impact your users? Bencher could have prevented that from happening with continuous benchmarking.