Adaptadores de Ferramenta de Benchmark


Os adaptadores convertem a sa铆da do harness de benchmark para o formato JSON do Bencher Metric Format (BMF). Os adaptadores s茫o executados no servidor da API quando um novo relat贸rio 茅 recebido. Veja a vis茫o geral de benchmarking para mais detalhes. Um adaptador pode ser especificado para o subcomando CLI bencher run com a op莽茫o --adapter. Se nenhum adaptador for especificado, o adaptador magic 茅 usado por padr茫o.

馃獎 Magia (padr茫o)

O Adaptador M谩gico (magic) 茅 um superconjunto de todos os outros adaptadores. Por essa raz茫o, ele 茅 o adaptador padr茫o para bencher run. No entanto, o adaptador magic deve ser usado apenas para explora莽茫o.

Para melhores resultados, voc锚 deve especificar um adaptador de suporte de benchmark:


{鈥 JSON

O Adaptador JSON (json) espera Bencher Metric Format (BMF) JSON. 脡 perfeito para integrar sistemas de benchmark personalizados com o Bencher. Para mais detalhes, veja como rastrear benchmarks personalizados e a refer锚ncia BMF JSON.

鈿栵笍 Tamanho do Arquivo

O subcomando CLI bencher run pode ser utilizado para acompanhar o tamanho do arquivo (ou seja, tamanho do bin谩rio) de seus entreg谩veis 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 exibe os resultados comoFormato de M茅trica Bencher (BMF) JSON. Portanto, 茅 uma boa pr谩tica utilizar explicitamente o adaptador json. Para mais detalhes, veja como acompanhar o tamanho do arquivo.

A Medida file-size (ou seja, bytes (B)) 茅 coletada. Apenas o valor do tamanho do arquivo (ou seja, valor) est谩 dispon铆vel. Nem lower_value nem upper_value s茫o coletados. A Medida file-size n茫o 茅 criada por padr茫o para todos os Projetos. No entanto, quando voc锚 usa a op莽茫o --file-size, essa Medida ser谩 automaticamente criada para o seu Projeto.

A op莽茫o --file-size pode ser usada v谩rias vezes para rastrear m煤ltiplos tamanhos de arquivo.


#锔忊儯 C# DotNet

O Adaptador C# DotNet (c_sharp_dot_net) espera a sa铆da do BenchmarkDotNet no formato JSON (ou seja, --exporters json). A Medida de lat锚ncia (ou seja, nanossegundos (ns)) 茅 coletada.

Existem duas op莽玫es para a M茅trica:

  • m茅dia (padr茫o): Os valores inferior e superior s茫o um desvio padr茫o abaixo e acima da m茅dia (ou seja, valor), respectivamente.
  • mediana: Os valores inferior e superior s茫o um intervalo interquartil abaixo e acima da mediana (ou seja, valor), respectivamente.

Isso pode ser especificado no subcomando CLI execu莽茫o do bencher com a op莽茫o --average.


鉃 C++ Catch2

O Adaptador C++ Catch2 (cpp_catch2) espera a sa铆da do Catch2. A Medida de latency (ou seja, nanosegundos (ns)) 茅 coletada. Os valores lower_value e upper_value est茫o um desvio padr茫o abaixo e acima da m茅dia (ou seja, value), respectivamente.

鉃 C++ Google

O Adaptador C++ Google (cpp_google) espera a sa铆da Google Benchmark no formato JSON (ou seja, --benchmark_format=json). A medida de lat锚ncia (ou seja, nanossegundos (ns)) 茅 coletada. Apenas a m茅dia (ou seja, valor) est谩 dispon铆vel. N茫o existem valor_inferior e valor_superior.


馃暢 Go Bench

O Adaptador Go Bench (go_bench) espera um output de go test -bench. A Medida de lat锚ncia (ou seja, nanosegundos (ns)) 茅 coletada. Apenas a m茅dia (ou seja, valor) est谩 dispon铆vel. N茫o existem valor_inferior e valor_superior.


鈽 Java JMH

O Adaptador Java JMH (java_jmh) espera a sa铆da do Java Microbenchmark Harness (JMH) em formato JSON (ou seja, -rf json). Medidas de lat锚ncia e vaz茫o (ou seja, nanosegundos (ns) e opera莽玫es / segundo (ops/sec)) podem ser coletadas. Os valores_inferior e superior s茫o os intervalos de confian莽a inferior e superior para a m茅dia (ou seja, valor) respectivamente.


馃暩 Benchmark de JavaScript

O Adaptador de Benchmark de JavaScript (js_benchmark) espera a sa铆da do Benchmark.js. A medida de throughput (ou seja, opera莽玫es / segundo (ops/sec)) 茅 coletada. Os valores lower_value e upper_value s茫o a margem de erro relativa abaixo e acima da mediana (ou seja, value), respectivamente.

馃暩 Hora em JavaScript

O Adaptador de Tempo em JavaScript (js_time) espera a sa铆da de console.time/console.timeEnd. A medida de lat锚ncia (ou seja, nanossegundos (ns)) 茅 coletada. Apenas o tempo de opera莽茫o (ou seja, valor) est谩 dispon铆vel. N茫o existem valor_inferior e valor_superior.


馃悕 Python ASV

O Adaptador Python ASV (python_asv) espera a sa铆da do CLI airspeed velocity asv run. A Medida de lat锚ncia (ou seja, nanossegundos (ns)) 茅 coletada. Os valores lower_value e upper_value s茫o o intervalo interquart铆lico abaixo e acima da mediana (ou seja, value), respectivamente.

馃悕 Python Pytest

O Adaptador Pytest do Python (python_pytest) espera a sa铆da do pytest-benchmark em formato JSON (ou seja --benchmark-json results.json). Essa sa铆da JSON 茅 salva em um arquivo, ent茫o voc锚 deve usar o argumento --file da CLI bencher run para especificar o caminho desse arquivo (ou seja, bencher run --file results.json "pipenv run pytest --benchmark-json results.json benchmarks.py"). A Medida de lat锚ncia (ou seja, nanoseconds (ns)) 茅 coletada.

H谩 duas op莽玫es para a M茅trica:

  • m茅dia (padr茫o): Os valores lower_value e upper_value s茫o um desvio padr茫o abaixo e acima da m茅dia (ou seja, value) respectivamente.
  • mediana: Os valores lower_value e upper_value s茫o um intervalo interquartil abaixo e acima da mediana (ou seja, value) respectivamente.

Isso pode ser especificado no subcomando da CLI bencher run com o argumento opcional --average.


鈾︼笍 Benchmark do Ruby

O Adaptador de Benchmark do Ruby (ruby_benchmark) espera a sa铆da do m贸dulo Benchmark para os m茅todos #bm, #bmbm, e #benchmark. Uma etiqueta 茅 necess谩ria para cada benchmark. A Medida de lat锚ncia (ou seja, nanosegundos (ns)) 茅 coletada. Apenas o valor reportado (ou seja, valor) est谩 dispon铆vel. N茫o existem valor_inferior e valor_superior.


馃 Bench do Rust

O Adaptador de Bench do Rust (rust_bench) espera a sa铆da do bench do libtest. A medida de lat锚ncia (ou seja, nanossegundos (ns)) 茅 coletada. Os valores lower_value e upper_value s茫o o desvio abaixo e acima da mediana (ou seja, value) respectivamente.

馃 Crit茅rio Rust

O Adaptador Criterion Rust (rust_criterion) espera a sa铆da do Criterion. A Medida de lat锚ncia (ou seja, nanossegundos (ns)) 茅 coletada. O valor_inferior e o valor_superior s茫o os limites inferior e superior da inclina莽茫o (se dispon铆vel) ou da m茅dia (se n茫o) (ou seja, valor) respectivamente.

馃 Rust Iai

O Adaptador Rust Iai (rust_iai) espera uma sa铆da Iai. As Medidas instructions, l1_access, l2_access, ram_access, e estimated_cycles s茫o coletadas. Apenas essas medidas (isto 茅, value) est茫o dispon铆veis. N茫o existem medidas de lower_value e upper_value. As Medidas para este adaptador n茫o s茫o criadas por padr茫o para todos os projetos. No entanto, quando voc锚 usa esse adaptador, essas Medidas ser茫o criadas automaticamente para o seu Projeto.

馃 Rust Iai-Callgrind

O Adaptador Rust Iai (rust_iai_callgrind) espera a sa铆da Iai-Callgrind. As Medidas instructions, l1_access, l2_access, ram_access, total_accesses e estimated_cycles s茫o coletadas. Apenas estas medidas (ou seja, value) est茫o dispon铆veis. N茫o h谩 medidas de lower_value e upper_value. As Medidas para este adaptador n茫o s茫o criadas por padr茫o para todos os projetos. No entanto, quando voc锚 usa este adaptador, estas Medidas ser茫o automaticamente criadas para o seu Projeto.


鉂痏锔 Shell Hyperfine

O Adaptador Shell Hyperfine (shell_hyperfine) espera a sa铆da do Hyperfine no formato JSON (por exemplo, --export-json results.json). Essa sa铆da JSON 茅 salva em um arquivo, ent茫o voc锚 deve usar o argumento --file da CLI bencher run para especificar o caminho desse arquivo (por exemplo, bencher run --file results.json "hyperfine --export-json results.json 'sleep 0.1'"). A Medida de lat锚ncia (por exemplo, nanosegundos (ns)) 茅 coletada.

Existem duas op莽玫es para a M茅trica:

  • mean (padr茫o): Os valores lower_value e upper_value s茫o um desvio padr茫o abaixo e acima da m茅dia (por exemplo, value) respectivamente.
  • median: Os valores lower_value e upper_value s茫o os valores min e max respectivamente.

Isso pode ser especificado no subcomando CLI bencher run com a op莽茫o --average.



馃惏 Parab茅ns! Voc锚 aprendeu tudo sobre adaptadores de ferramenta de benchmark! 馃帀


Continue: Limites & Alertas 鉃

馃 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: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, May 9, 2024 at 5:17:00 PM UTC