Обзор Бенчмаркинга


Большинство результатов бенчмаркинга носит временный характер. Они исчезают, как только ваш терминал достигает своего предела прокрутки. Некоторые системы бенчмаркинга позволяют кэшировать результаты, но в большинстве случаев это происходит только локально. Bencher позволяет вам отслеживать результаты своих тестов как в локальном, так и в CI режимах и сравнивать их с историческими данными.

Самым простым способом отслеживания результатов тестов является подкоманда командной строки bencher run. Она обрабатывает результаты существующего вывода системы бенчмаркинга и генерирует отчет. Этот отчет затем отправляется на сервер API Bencher, где вывод системы бенчмаркинга анализируется с помощью адаптера системы бенчмаркинга. Адаптер системы бенчмаркинга определяет все присутствующие бенчмарки и соответствующие им метрики. Эти бенчмарки и метрики затем сохраняются вместе с отчетом. Если установлен Порог, то новые метрики сравниваются с историческими метриками для каждого бенчмарка, присутствующего в отчете. Если обнаружено ухудшение производительности, то будет сгенерировано оповещение.

С этого момента мы будем называть ваши “бенчмарки” “тестами на откат производительности” для избежания путаницы.

Бенчмарки

Бенчмарк - это именованный тест на откат производительности. Если тест на откат производительности новый для Bencher, то автоматически создается бенчмарк. В противном случае имя теста на откат производительности используется в качестве уникального идентификатора для бенчмарка.

Будьте осторожны при изменении названия ваших тестов на откат производительности. Вам придется вручную переименовать бенчмарк в Bencher, чтобы соответствовать этому новому названию. В противном случае переименованный тест на откат производительности будет рассматриваться как новый бенчмарк. Это же предупреждение относится и к перемещению некоторых тестов на откат производительности. В зависимости от системы бенчмаркинга, путь к тесту на откат производительности может быть частью его названия.

Единственным исключением из вышеуказанного пункта является игнорирование бенчмарка. Об этом можно прочитать в разделе подавление оповещений.

Метрики

Метрика - это единичный результат теста на откат производительности в определенный момент времени. Для одной метрики могут быть собраны до трех показателей: value, lower_value и upper_value. value обязательна для всех метрик, в то время как lower_value и upper_value являются независимо опциональными. Какие показатели собраны, определяется адаптером системы бенчмаркинга.

Вид метрики

Вид метрики - это единица измерения метрики. По умолчанию все проекты начинаются с видами метрики Latency и Throughput с единицами измерения наносекунды (ns) и операции / секунда (ops/s) соответственно. Вид метрики определяется адаптером системы бенчмаркинга.


Отчет

Отчет - это коллекция бенчмарков и их метрик для конкретной ветки и тестового стенда. Отчеты чаще всего генерируются с помощью подкоманды командной строки bencher run. Подробно о том, как отслеживать тесты на откат производительности, можно прочитать в разделе Как отслеживать тесты на откат производительности.

Ветка

Ветка - это ссылка git, используемая при запуске отчета (то есть имя ветки или тег). По умолчанию все проекты начинаются с ветки main. При использовании подкоманды командной строки bencher run, main является веткой по умолчанию, если она не предоставлена. Подробности см. в разделе Выбор ветки.

Тестовый стенд

Тестовый стенд - это имя тестовой среды, используемой при запуске отчета. По умолчанию все проекты начинаются с тестового стенда localhost. При использовании подкоманды командной строки bencher run, localhost является тестовым стендом по умолчанию, если он не предоставлен.



🐰 Поздравляем! Вы узнали все о отслеживании бенчмарков тестов на откат производительности! 🎉


Продолжите: подкоманда командной строки bencher run

🤖 Этот документ был автоматически создан OpenAI GPT-4. Оно может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Wed, March 27, 2024 at 7:50:00 AM UTC