Как отслеживать время сборки с помощью Bencher
Bencher поддерживает наиболее популярные тестовые фреймворки из коробки.
Тем не менее, иногда необходимо измерить, сколько времени занимает сборка ваших продуктов,
например, время компиляции исполняемого файла.
К счастью, Bencher также поддерживает отслеживание времени сборки.
Самый простой способ отслеживать время сборки — использовать
bencher run
подкоманду CLI
с флагом --build-time
.
Под капотом, bencher run
выводит результаты в формате Bencher Metric Format (BMF) JSON.
Поэтому стоит явно использовать адаптер json
.
Если у вас есть скрипт, расположенный в ./my_build_script.sh
, который собирает ваш бинарный файл, тогда вы можете отслеживать время сборки этого бинарного файла с помощью bencher run
и адаптера json
. Флаг --build-time
требует команду бенчмарка.
Сгенерированный BMF JSON будет выглядеть так, если ваш скрипт сборки выполняется за 87.0
секунд:
Обратите внимание, что имя Бенчмарка — /bin/sh -c ./my_build_script.sh
. Это потому что наша команда является только единственным аргументом, поэтому bencher run
по умолчанию использует форму shell для выполнения. В качестве альтернативы, если вы хотите принудительно использовать форму exec, вы можете либо предоставить несколько аргументов, либо использовать флаг --exec
.
Если это построение в форме exec заняло 86.98
секунд, то сгенерированный BMF JSON будет выглядеть так:
Теперь имя Бенчмарка просто ./my_build_script.sh
. Объект ./my_build_script.sh
содержит ключ build-time
. build-time
является слагом для встроенной Меры Времени Сборки Measure. Мера Времени Сборки не создается по умолчанию для всех проектов. Однако, когда вы используете Меру Времени Сборки, она будет автоматически создана для вашего проекта. Объект Меры Времени Сборки содержит Метрику со значением времени сборки в секундах, 87.0
и 86.98
в наших примерах.
Время сборки всегда будет округлено до ближайших двух десятичных знаков. То есть, оно никогда не будет длинным десятичным, как 42.666666
.
Отслеживание размера файла
Вы можете захотеть отслеживать размер файла ваших результатов,
в дополнение к отслеживанию времени, которое требуется на их сборку.
bencher run
поддерживает отслеживание как времени сборки, так и размеров файлов.
Если результатом вашего скрипта сборки ./my_build_script.sh
был бинарный файл по пути ./path/to/my_binary
,
вы могли бы отслеживать как время компиляции, так и размер бинарного файла с помощью этой команды:
Если бы my_binary
имел размер 42
байта,
сгенерированный BMF JSON выглядел бы так:
🐰 Поздравляем! Вы научились отслеживать время сборки! 🎉