Como Acompanhar o Tempo de Build com o Bencher


Bencher oferece suporte aos harnesses de benchmark mais populares imediatamente. No entanto, às vezes, você deseja medir quanto tempo leva para construir seus próprios entregáveis, como o tempo de compilação de um executável. Por sorte, o Bencher também oferece suporte ao acompanhamento dos tempos de construção. A maneira mais fácil de rastrear os tempos de construção é usar o subcomando CLI bencher run com a opção --build-time. Internamente, o bencher run gera os resultados como Bencher Metric Format (BMF) JSON. Portanto, é uma boa prática usar explicitamente o adaptador json.

Se você tiver um script localizado em ./my_build_script.sh que constrói seu binário, então você pode rastrear o tempo de construção desse binário com bencher run e o adaptador json. A flag --build-time requer um comando de benchmark.

Terminal window
bencher run --build-time --adapter json ./my_build_script.sh

O JSON BMF gerado ficaria assim, se seu script de construção levou 87.0 segundos para completar:

{
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
}
}

Observe que o nome do Benchmark é /bin/sh -c ./my_build_script.sh. Isso ocorre porque nosso comando é apenas um único argumento, então bencher run por padrão utiliza a forma de shell para execução. Alternativamente, se você quiser forçar o uso da forma exec, você pode fornecer múltiplos argumentos ou usar a flag --exec.

Terminal window
bencher run --build-time --adapter json --exec ./my_build_script.sh

Se esse build na forma exec levou 86.98 segundos, então o JSON BMF gerado ficaria assim:

{
"./my_build_script.sh": {
"build-time": {
"value": 86.98
}
}
}

Agora, o nome do Benchmark é simplesmente ./my_build_script.sh. O objeto ./my_build_script.sh contém a chave build-time. build-time é o slug para a Medição de Tempo de Construção embutida. A Medição de Tempo de Construção não é criada por padrão para todos os Projetos. No entanto, quando você usa a Medição de Tempo de Construção, ela será automaticamente criada para o seu Projeto. O objeto Medição de Tempo de Construção contém um Métrica com o valor do tempo de construção em segundos, 87.0 e 86.98 em nossos exemplos.

O Tempo de Construção sempre será arredondado para as duas casas decimais mais próximas. Ou seja, nunca será um decimal longo como 42.666666.

Acompanhar o Tamanho do Arquivo

Você pode querer acompanhar o tamanho do arquivo de seus entregáveis, além de acompanhar quanto tempo leva para construí-los. bencher run suporta o acompanhamento tanto dos tempos de construção quanto dos tamanhos de arquivo.

Se a saída de seu script de construção ./my_build_script.sh fosse um binário no caminho ./path/to/my_binary, você poderia acompanhar tanto o tempo de compilação quanto o tamanho do binário com este comando:

Terminal window
bencher run --build-time --file-size ./path/to/my_binary --adapter json ./my_build_script.sh

Se my_binary tivesse um tamanho de 42 bytes, o JSON do BMF gerado seria assim:

{
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
},
"my_binary": {
"file-size": {
"value": 42.0
}
}
}

🐰 Parabéns! Você aprendeu a acompanhar o tempo de build! 🎉


Continue: Como Acompanhar Benchmarks em CI ➡

🤖 Este documento foi gerado automaticamente pelo OpenAI GPT-4. Pode não ser preciso e pode conter erros. Se você encontrar algum erro, abra um problema no GitHub.


Published: Sat, November 9, 2024 at 10:00:00 AM UTC