Repolode
google

google/benchmark

Библиотека C++ для микробенчмарков, измеряющих время выполнения небольших фрагментов кода, по структуре похожих на модульные тесты.

Звёзды
10,499
Форки
1,825
Открытые issues
174
Последний коммит
21 час назад

Что это?

Google Benchmark — библиотека C++ для измерения производительности небольших фрагментов кода. Вы пишете функцию, которая выполняет проверяемый код в цикле, регистрируете её с помощью макроса BENCHMARK, а библиотека сама управляет измерением времени, числом итераций и выводом результатов. Структура её API напоминает Google Test, поэтому библиотека естественно дополняет существующие модульные тесты.

Библиотеку можно собрать с помощью CMake, использовать через Bazel или установить как системный пакет и подключить через find_package. Для сборки требуется toolchain с поддержкой C++17, а API библиотеки можно использовать из кода на C++11. В проект также входят Python bindings и дополнительные инструменты для работы с результатами бенчмарков.

Библиотека предназначена для C++-разработчиков, которым нужно сравнивать реализации или отслеживать производительность конкретной функции, а не измерять быстродействие приложений целиком.

Ключевые возможности

  • 01Регистрирует функции для бенчмарков с помощью простого макроса BENCHMARK и API на основе циклов.
  • 02Собирается с помощью CMake и интегрируется с Bazel и find_package.
  • 03Поддерживает параметры сборки для санитайзеров и оптимизации на этапе компоновки.
  • 04Предоставляет Python bindings и документацию по дополнительным инструментам.
  • 05Предлагает документацию по тестированию ассемблерного кода для проверки сгенерированного кода.

Сценарии использования

  • Сравнить две реализации одной функции на C++, чтобы определить, какая работает быстрее.
  • Добавить проверки регрессий производительности для критичных участков кода наряду с модульными тестами.
  • Измерить стоимость отдельных алгоритмов или операций со структурами данных.

Быстрый старт

  1. 1

    Клонируйте репозиторий библиотеки

    git clone https://github.com/google/benchmark.git
  2. 2

    Перейдите в корневой каталог библиотеки

    cd benchmark
  3. 3

    Создайте файлы системы сборки с помощью CMake и загрузите зависимости

    cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release -S . -B "build"
  4. 4

    Соберите библиотеку

    cmake --build "build" --config Release

Что важно знать

  • Для сборки библиотеки необходимы компилятор и стандартная библиотека с поддержкой C++17.
  • Экспериментальная ветка v2 не гарантирует стабильность, а API может измениться в любой момент.

В подборках

Темы

Частые вопросы

Что такое benchmark?
Библиотека C++ для микробенчмарков, измеряющих время выполнения небольших фрагментов кода, по структуре похожих на модульные тесты. Google Benchmark — библиотека C++ для измерения производительности небольших фрагментов кода. Вы пишете функцию, которая выполняет проверяемый код в цикле, регистрируете её с помощью макроса BENCHMARK, а библиотека сама управляет измерением времени, числом итераций и выводом результатов. Структура её API напоминает Google Test, поэтому библиотека естественно дополняет существующие модульные тесты.
benchmark можно использовать бесплатно? Какая у него лицензия?
benchmark распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
benchmark всё ещё поддерживается?
Активно поддерживается. Последний коммит в benchmark — 6 нояб. 2026 г..
Для чего можно использовать benchmark?
Сравнить две реализации одной функции на C++, чтобы определить, какая работает быстрее. Добавить проверки регрессий производительности для критичных участков кода наряду с модульными тестами. Измерить стоимость отдельных алгоритмов или операций со структурами данных.
Как установить benchmark?
Клонируйте репозиторий библиотеки: git clone https://github.com/google/benchmark.git Перейдите в корневой каталог библиотеки: cd benchmark Создайте файлы системы сборки с помощью CMake и загрузите зависимости: cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release -S . -B "build" Соберите библиотеку: cmake --build "build" --config Release
Где скачать benchmark?
Исходный код и инструкции по установке — на GitHub: https://github.com/google/benchmark

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Открытая библиотека Facebook с базовыми компонентами на C++20, дополняющая Boost и std и широко используемая внутри Meta.

30,6 тыс.5,9 тыс.C++Apache-2.0Обновлён 17 часов назад

Библиотека .NET для превращения методов C# в воспроизводимые бенчмарки с автоматическим прогревом, статистикой и отчетами о результатах.

11,5 тыс.+2 за неделю1,1 тыс.C#MITАктивно поддерживаетсяОбновлён 17 часов назад