extern crate criterion;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use helper::gen_string_array;
mod helper;
fn criterion_benchmark(c: &mut Criterion) {
let character_length = datafusion_functions::unicode::character_length();
let n_rows = 8192;
for str_len in [8, 32, 128, 4096] {
let args_string_ascii = gen_string_array(n_rows, str_len, 0.1, 0.0, false);
c.bench_function(
&format!("character_length_StringArray_ascii_str_len_{}", str_len),
|b| {
b.iter(|| {
black_box(character_length.invoke_batch(&args_string_ascii, n_rows))
})
},
);
let args_string_utf8 = gen_string_array(n_rows, str_len, 0.1, 0.5, false);
c.bench_function(
&format!("character_length_StringArray_utf8_str_len_{}", str_len),
|b| {
b.iter(|| {
black_box(character_length.invoke_batch(&args_string_utf8, n_rows))
})
},
);
let args_string_view_ascii = gen_string_array(n_rows, str_len, 0.1, 0.0, true);
c.bench_function(
&format!("character_length_StringViewArray_ascii_str_len_{}", str_len),
|b| {
b.iter(|| {
black_box(
character_length.invoke_batch(&args_string_view_ascii, n_rows),
)
})
},
);
let args_string_view_utf8 = gen_string_array(n_rows, str_len, 0.1, 0.5, true);
c.bench_function(
&format!("character_length_StringViewArray_utf8_str_len_{}", str_len),
|b| {
b.iter(|| {
black_box(
character_length.invoke_batch(&args_string_view_utf8, n_rows),
)
})
},
);
}
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);