Skip to content

Commit 70680ea

Browse files
committed
perf: improve cksum benchmarks with meaningful workloads
- Increase file sizes from 10MB to 50MB for actual algorithm performance measurement - Remove meaningless cksum_stdin benchmark (was just testing startup overhead) - Increase file sizes for raw_output and multiple_files benchmarks - Now benchmarks measure actual algorithm performance, not program startup - Results: cksum_default ~15ms, cksum_crc32b ~17ms (5x more meaningful than before)
1 parent b8bf977 commit 70680ea

1 file changed

Lines changed: 7 additions & 23 deletions

File tree

src/uu/cksum/benches/cksum_bench.rs

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ macro_rules! bench_algorithm {
1212
($algo_name:ident, $algo_str:expr) => {
1313
#[divan::bench]
1414
fn $algo_name(bencher: Bencher) {
15-
let data = text_data::generate_by_size(10, 80);
15+
let data = text_data::generate_by_size(50, 80);
1616
let file_path = setup_test_file(&data);
1717

1818
bencher.bench(|| {
@@ -26,7 +26,7 @@ macro_rules! bench_algorithm {
2626
($algo_name:ident, $algo_str:expr, length) => {
2727
#[divan::bench]
2828
fn $algo_name(bencher: Bencher) {
29-
let data = text_data::generate_by_size(10, 80);
29+
let data = text_data::generate_by_size(50, 80);
3030
let file_path = setup_test_file(&data);
3131

3232
bencher.bench(|| {
@@ -67,7 +67,7 @@ bench_algorithm!(cksum_shake256, "shake256", length);
6767
/// Benchmark cksum with default CRC algorithm
6868
#[divan::bench]
6969
fn cksum_default(bencher: Bencher) {
70-
let data = text_data::generate_by_size(10, 80);
70+
let data = text_data::generate_by_size(50, 80);
7171
let file_path = setup_test_file(&data);
7272

7373
bencher.bench(|| {
@@ -78,7 +78,7 @@ fn cksum_default(bencher: Bencher) {
7878
/// Benchmark cksum with raw output format
7979
#[divan::bench]
8080
fn cksum_raw_output(bencher: Bencher) {
81-
let data = text_data::generate_by_size(10, 80);
81+
let data = text_data::generate_by_size(50, 80);
8282
let file_path = setup_test_file(&data);
8383

8484
bencher.bench(|| {
@@ -94,9 +94,9 @@ fn cksum_raw_output(bencher: Bencher) {
9494
fn cksum_multiple_files(bencher: Bencher) {
9595
bencher
9696
.with_inputs(|| {
97-
let data1 = text_data::generate_by_size(5, 80);
98-
let data2 = text_data::generate_by_size(5, 80);
99-
let data3 = text_data::generate_by_size(5, 80);
97+
let data1 = text_data::generate_by_size(25, 80);
98+
let data2 = text_data::generate_by_size(25, 80);
99+
let data3 = text_data::generate_by_size(25, 80);
100100

101101
let file1 = setup_test_file(&data1);
102102
let file2 = setup_test_file(&data2);
@@ -116,23 +116,7 @@ fn cksum_multiple_files(bencher: Bencher) {
116116
});
117117
}
118118

119-
/// Benchmark cksum reading from stdin
120-
#[divan::bench]
121-
fn cksum_stdin(bencher: Bencher) {
122-
let data = text_data::generate_by_size(10, 80);
123119

124-
bencher
125-
.with_inputs(|| {
126-
// Create temporary file with test data
127-
setup_test_file(&data)
128-
})
129-
.bench_values(|_file_path| {
130-
black_box(run_util_function(
131-
uumain,
132-
&["-"], // Read from stdin
133-
));
134-
});
135-
}
136120

137121
fn main() {
138122
divan::main();

0 commit comments

Comments
 (0)