Skip to content

Commit c6261b4

Browse files
author
Tai Le Manh
committed
Add benchmark with with NULL_DENSITY=0
1 parent 66adc46 commit c6261b4

File tree

1 file changed

+76
-75
lines changed

1 file changed

+76
-75
lines changed

datafusion/functions/benches/ascii.rs

Lines changed: 76 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -29,87 +29,88 @@ fn criterion_benchmark(c: &mut Criterion) {
2929
// All benches are single batch run with 8192 rows
3030
const N_ROWS: usize = 8192;
3131
const STR_LEN: usize = 16;
32-
const NULL_DENSITY: f32 = 0.2;
3332
const UTF8_DENSITY_OF_ALL_ASCII: f32 = 0.0;
3433
const NORMAL_UTF8_DENSITY: f32 = 0.8;
3534

36-
// StringArray ASCII only
37-
let args_string_ascii = gen_string_array(
38-
N_ROWS,
39-
STR_LEN,
40-
NULL_DENSITY,
41-
UTF8_DENSITY_OF_ALL_ASCII,
42-
false,
43-
);
44-
c.bench_function("ascii/string_ascii_only", |b| {
45-
b.iter(|| {
46-
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
47-
args: args_string_ascii.clone(),
48-
arg_fields: vec![&Field::new(
49-
"a",
50-
args_string_ascii[0].data_type(),
51-
true,
52-
)],
53-
number_rows: N_ROWS,
54-
return_field: &Field::new("f", DataType::Utf8, true),
55-
}))
56-
})
57-
});
35+
for null_density in [0.0, 0.5] {
36+
// StringArray ASCII only
37+
let args_string_ascii = gen_string_array(
38+
N_ROWS,
39+
STR_LEN,
40+
null_density,
41+
UTF8_DENSITY_OF_ALL_ASCII,
42+
false,
43+
);
44+
c.bench_function(format!("ascii/string_ascii_only (null_density={null_density})").as_str(), |b| {
45+
b.iter(|| {
46+
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
47+
args: args_string_ascii.clone(),
48+
arg_fields: vec![&Field::new(
49+
"a",
50+
args_string_ascii[0].data_type(),
51+
true,
52+
)],
53+
number_rows: N_ROWS,
54+
return_field: &Field::new("f", DataType::Utf8, true),
55+
}))
56+
})
57+
});
5858

59-
// StringArray UTF8
60-
let args_string_utf8 =
61-
gen_string_array(N_ROWS, STR_LEN, NULL_DENSITY, NORMAL_UTF8_DENSITY, false);
62-
c.bench_function("ascii/string_utf8", |b| {
63-
b.iter(|| {
64-
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
65-
args: args_string_utf8.clone(),
66-
arg_fields: vec![&Field::new("a", args_string_utf8[0].data_type(), true)],
67-
number_rows: N_ROWS,
68-
return_field: &Field::new("f", DataType::Utf8, true),
69-
}))
70-
})
71-
});
59+
// StringArray UTF8
60+
let args_string_utf8 =
61+
gen_string_array(N_ROWS, STR_LEN, null_density, NORMAL_UTF8_DENSITY, false);
62+
c.bench_function(format!("ascii/string_utf8 (null_density={null_density})").as_str(), |b| {
63+
b.iter(|| {
64+
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
65+
args: args_string_utf8.clone(),
66+
arg_fields: vec![&Field::new("a", args_string_utf8[0].data_type(), true)],
67+
number_rows: N_ROWS,
68+
return_field: &Field::new("f", DataType::Utf8, true),
69+
}))
70+
})
71+
});
7272

73-
// StringViewArray ASCII only
74-
let args_string_view_ascii = gen_string_array(
75-
N_ROWS,
76-
STR_LEN,
77-
NULL_DENSITY,
78-
UTF8_DENSITY_OF_ALL_ASCII,
79-
true,
80-
);
81-
c.bench_function("ascii/string_view_ascii_only", |b| {
82-
b.iter(|| {
83-
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
84-
args: args_string_view_ascii.clone(),
85-
arg_fields: vec![&Field::new(
86-
"a",
87-
args_string_view_ascii[0].data_type(),
88-
true,
89-
)],
90-
number_rows: N_ROWS,
91-
return_field: &Field::new("f", DataType::Utf8, true),
92-
}))
93-
})
94-
});
73+
// StringViewArray ASCII only
74+
let args_string_view_ascii = gen_string_array(
75+
N_ROWS,
76+
STR_LEN,
77+
null_density,
78+
UTF8_DENSITY_OF_ALL_ASCII,
79+
true,
80+
);
81+
c.bench_function(format!("ascii/string_view_ascii_only (null_density={null_density})").as_str(), |b| {
82+
b.iter(|| {
83+
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
84+
args: args_string_view_ascii.clone(),
85+
arg_fields: vec![&Field::new(
86+
"a",
87+
args_string_view_ascii[0].data_type(),
88+
true,
89+
)],
90+
number_rows: N_ROWS,
91+
return_field: &Field::new("f", DataType::Utf8, true),
92+
}))
93+
})
94+
});
9595

96-
// StringViewArray UTF8
97-
let args_string_view_utf8 =
98-
gen_string_array(N_ROWS, STR_LEN, NULL_DENSITY, NORMAL_UTF8_DENSITY, true);
99-
c.bench_function("ascii/string_view_utf8", |b| {
100-
b.iter(|| {
101-
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
102-
args: args_string_view_utf8.clone(),
103-
arg_fields: vec![&Field::new(
104-
"a",
105-
args_string_view_utf8[0].data_type(),
106-
true,
107-
)],
108-
number_rows: N_ROWS,
109-
return_field: &Field::new("f", DataType::Utf8, true),
110-
}))
111-
})
112-
});
96+
// StringViewArray UTF8
97+
let args_string_view_utf8 =
98+
gen_string_array(N_ROWS, STR_LEN, null_density, NORMAL_UTF8_DENSITY, true);
99+
c.bench_function(format!("ascii/string_view_utf8 (null_density={null_density})").as_str(), |b| {
100+
b.iter(|| {
101+
black_box(ascii.invoke_with_args(ScalarFunctionArgs {
102+
args: args_string_view_utf8.clone(),
103+
arg_fields: vec![&Field::new(
104+
"a",
105+
args_string_view_utf8[0].data_type(),
106+
true,
107+
)],
108+
number_rows: N_ROWS,
109+
return_field: &Field::new("f", DataType::Utf8, true),
110+
}))
111+
})
112+
});
113+
}
113114
}
114115

115116
criterion_group!(benches, criterion_benchmark);

0 commit comments

Comments
 (0)