Como Monitorar o Tamanho do Arquivo com Bencher


O Bencher suporta os dispositivos de medição de desempenho mais populares de forma nativa. Por vezes, no entanto, você deseja medir o tamanho dos seus entregáveis em si, como o tamanho binário do seu executável. Sorte a sua, o Bencher também suporta o rastreamento do tamanho de arquivo. A maneira mais fácil de rastrear o tamanho de um arquivo é usar o subcomando da CLI bencher run com a opção --file-size. A opção --file-size espera um caminho de arquivo para o arquivo cujo tamanho será medido. Por baixo dos panos, bencher run apresenta os resultados como Bencher Metric Format (BMF) JSON. Portanto, é uma boa prática usar explicitamente o adaptador json.

Se você tivesse um script localizado em ./my_build_script.sh que construísse seu binário no caminho ./path/to/my_binary, então você poderia acompanhar o tamanho deste arquivo binário com bencher run e o adaptador json. Isso funcionaria tanto com um comando de benchmark quanto sem ele.

Com um comando de benchmark:

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

Sem um comando de benchmark:

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

Em qualquer caso, o JSON BMF gerado seria assim, se my_binary tivesse um tamanho de 42 bytes:

{
"my_binary": {
"file-size": {
"value": 42.0
}
}
}

Neste exemplo, a chave my_binary é o nome do arquivo binário. É usada como o nome do Benchmark. O objeto my_binary contém a chave file-size. file-size é o slug para a Medida de Tamanho de Arquivo integrada Measure. A Medida de Tamanho de Arquivo não é criada por padrão para todos os Projetos. No entanto, quando você usa a Medida de Tamanho de Arquivo, ela será automaticamente criada para seu Projeto. O objeto Medida de Tamanho de Arquivo contém uma Métrica com o valor do tamanho do arquivo em bytes, 42.0.

O Tamanho do Arquivo será sempre um incremento de byte inteiro. Ou seja, nunca terá um decimal como 42.5. No entanto, BMF JSON precisa suportar uma ampla gama de valores possíveis, então ele usa floats em vez de inteiros.

Tamanhos Múltiplos de Arquivos

Se você quiser rastrear o tamanho de vários arquivos, pode simplesmente usar a opção --file-size várias vezes no mesmo bencher run comando. Por exemplo, você pode rastrear tanto my_binary quanto uma versão executável do Windows, my_binary.exe.

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

O JSON BMF gerado se pareceria com isso se my_binary.exe tiver um tamanho de 48 bytes:

{
"my_binary": {
"file-size": {
"value": 42.0
}
},
"my_binary.exe": {
"file-size": {
"value": 48.0
}
}
}

Acompanhar Tempo de Compilação

Você pode querer acompanhar o tempo de compilação de seus entregáveis, além de acompanhar o tamanho de seus arquivos. bencher run suporta o acompanhamento tanto dos tamanhos dos arquivos quanto dos tempos de compilação.

Você poderia acompanhar tanto o tamanho binário quanto o tempo de compilação para my_binary com este comando:

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

Se o seu script de compilação levou 87.0 segundos para ser concluído, o JSON BMF gerado ficaria assim:

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

🐰 Parabéns! Você aprendeu como monitorar o tamanho do seu arquivo! 🎉


Continue: Como Monitorar Benchmarks no 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: Mon, May 13, 2024 at 7:14:00 AM UTC | Last Updated: Sat, November 9, 2024 at 7:17:00 AM UTC