MCPcopy Create free account
hub / github.com/apache/arrow-rs / criterion_benchmark

Function criterion_benchmark

arrow/benches/string_run_builder.rs:23–57  ·  view source on GitHub ↗
(c: &mut Criterion)

Source from the content-addressed store, hash-verified

21use criterion::{Criterion, criterion_group, criterion_main};
22
23fn criterion_benchmark(c: &mut Criterion) {
24 let mut group = c.benchmark_group("string_run_builder");
25
26 let mut do_bench = |physical_array_len: usize, logical_array_len: usize, string_len: usize| {
27 group.bench_function(
28 format!(
29 "(run_array_len:{logical_array_len}, physical_array_len:{physical_array_len}, string_len: {string_len})",
30 ),
31 |b| {
32 let strings =
33 create_string_array_for_runs(physical_array_len, logical_array_len, string_len);
34 b.iter(|| {
35 let mut builder = StringRunBuilder::<Int32Type>::with_capacity(
36 physical_array_len,
37 (string_len + 1) * physical_array_len,
38 );
39
40 for val in &strings {
41 builder.append_value(val);
42 }
43
44 builder.finish();
45 })
46 },
47 );
48 };
49
50 do_bench(20, 1000, 5);
51 do_bench(100, 1000, 5);
52 do_bench(100, 1000, 10);
53 do_bench(100, 10000, 10);
54 do_bench(100, 10000, 100);
55
56 group.finish();
57}
58
59criterion_group!(benches, criterion_benchmark);
60criterion_main!(benches);

Callers

nothing calls this directly

Calls 5

do_benchFunction · 0.70
iterMethod · 0.45
append_valueMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected