@@ -15,32 +15,53 @@ const SEED: u64 = 42;
1515#[ cfg( feature = "compare" ) ]
1616criterion_group ! (
1717 benches,
18- bench_basic,
18+ bench_basic_generation,
19+ bench_basic_full,
1920 diff_struct_bench:: bench_basic,
2021 serde_diff_bench:: bench_basic
2122) ;
2223#[ cfg( not( feature = "compare" ) ) ]
23- criterion_group ! ( benches, bench_basic ) ;
24+ criterion_group ! ( benches, bench_basic_generation , bench_basic_full ) ;
2425
2526criterion_main ! ( benches) ;
2627
27- fn bench_basic ( c : & mut Criterion ) {
28+ fn bench_basic_generation ( c : & mut Criterion ) {
29+ const GROUP_NAME : & str = "bench_basic" ;
30+ let mut rng = WyRand :: new_seed ( SEED ) ;
31+ let first = black_box ( TestBench :: generate_random ( & mut rng) ) ;
32+ let second = black_box ( TestBench :: generate_random ( & mut rng) ) ;
33+ let mut group = c. benchmark_group ( GROUP_NAME ) ;
34+ group
35+ . sample_size ( SAMPLE_SIZE )
36+ . measurement_time ( MEASUREMENT_TIME ) ;
37+ group. bench_function ( GROUP_NAME , |b| {
38+ b. iter ( || {
39+ let diff = black_box ( StructDiff :: diff_ref ( & first, & second) ) ;
40+ black_box ( diff) ;
41+ } )
42+ } ) ;
43+ group. finish ( ) ;
44+ }
45+
46+ fn bench_basic_full ( c : & mut Criterion ) {
2847 const GROUP_NAME : & str = "bench_basic" ;
2948 let mut rng = WyRand :: new_seed ( SEED ) ;
3049 let mut first = black_box ( TestBench :: generate_random ( & mut rng) ) ;
50+
3151 let second = black_box ( TestBench :: generate_random ( & mut rng) ) ;
52+ let mut diff: Vec < <TestBench as StructDiff >:: Diff > = Vec :: new ( ) ;
3253 let mut group = c. benchmark_group ( GROUP_NAME ) ;
3354 group
3455 . sample_size ( SAMPLE_SIZE )
3556 . measurement_time ( MEASUREMENT_TIME ) ;
3657 group. bench_function ( GROUP_NAME , |b| {
3758 b. iter ( || {
38- let diff = black_box ( StructDiff :: diff ( & first, & second) ) ;
39- black_box ( first. apply_mut ( diff) ) ;
40- } )
59+ diff = black_box ( StructDiff :: diff ( & first, & second) ) ;
60+ black_box ( first. apply_mut ( diff. clone ( ) ) ) ;
61+ } )
4162 } ) ;
4263 group. finish ( ) ;
43- first. assert_eq ( second) ;
64+ first. assert_eq ( second, & diff ) ;
4465}
4566
4667#[ cfg( feature = "compare" ) ]
0 commit comments