@@ -8,9 +8,8 @@ use tokio::{fs::File, runtime::Runtime};
8
8
9
9
fn bench ( c : & mut Criterion ) {
10
10
let data_dir = Path :: new ( "./benches/data" ) ;
11
- let data_file = data_dir. join ( "100M" ) ;
12
- let data_file_trimmed = data_dir. join ( "100M.trim" ) ;
13
- const MB : u64 = 1024 * 1024 ;
11
+ const KILO : u64 = 1024 ;
12
+ const MEGA : u64 = 1024 * 1024 ;
14
13
const COMPARERS : & [ ( DefaultComparer , & str ) ] = & [
15
14
( DefaultComparer :: common ( ) , "common" ) ,
16
15
( DefaultComparer :: exact_match ( ) , "exact-match" ) ,
@@ -22,22 +21,37 @@ fn bench(c: &mut Criterion) {
22
21
23
22
let mut group = c. benchmark_group ( "DefaultComparer" ) ;
24
23
group. sampling_mode ( SamplingMode :: Flat ) ;
24
+ for ( size_str, bytes) in [
25
+ ( "1k" , KILO ) ,
26
+ ( "16k" , 16 * KILO ) ,
27
+ ( "256k" , 256 * KILO ) ,
28
+ ( "4M" , 4 * MEGA ) ,
29
+ ( "64M" , 64 * MEGA ) ,
30
+ ] {
31
+ let data_file = data_dir. join ( size_str) ;
25
32
26
- for ( comparer, id) in COMPARERS {
27
- group. throughput ( Throughput :: Bytes ( 100 * MB ) ) ;
28
- group. bench_with_input ( BenchmarkId :: from_parameter ( id) , comparer, |b, comparer| {
29
- b. to_async ( Runtime :: new ( ) . unwrap ( ) ) . iter ( || async {
30
- let result = black_box ( comparer)
31
- . compare (
32
- File :: open ( black_box ( & data_file) ) . await ?,
33
- File :: open ( black_box ( & data_file_trimmed) ) . await ?,
34
- )
35
- . await ?;
33
+ let data_file_trimmed = data_dir. join ( format ! ( "{}.trim" , size_str) ) ;
34
+ for ( comparer, id) in COMPARERS {
35
+ group. throughput ( Throughput :: Bytes ( bytes) ) ;
36
+ group. bench_with_input (
37
+ BenchmarkId :: new ( * id, size_str) ,
38
+ & ( data_file. as_path ( ) , data_file_trimmed. as_path ( ) ) ,
39
+ |b, ( data_file, data_file_trimmed) | {
40
+ b. to_async ( Runtime :: new ( ) . unwrap ( ) ) . iter ( || async {
41
+ let result = black_box ( comparer)
42
+ . compare (
43
+ File :: open ( black_box ( data_file) ) . await ?,
44
+ File :: open ( black_box ( data_file_trimmed) ) . await ?,
45
+ )
46
+ . await ?;
36
47
37
- Ok :: < _ , io:: Error > ( result)
38
- } ) ;
39
- } ) ;
48
+ Ok :: < _ , io:: Error > ( result)
49
+ } ) ;
50
+ } ,
51
+ ) ;
52
+ }
40
53
}
54
+ group. finish ( ) ;
41
55
}
42
56
43
57
criterion_group ! ( benches, bench) ;
0 commit comments