diff --git a/.gitignore b/.gitignore index fa8bf266..75e44429 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ target/ .canbench/ +canbench_results.yml # IDEs .idea/ diff --git a/rust/bench/bench.rs b/rust/bench/bench.rs index 9ec60bee..770d8aac 100644 --- a/rust/bench/bench.rs +++ b/rust/bench/bench.rs @@ -6,7 +6,7 @@ use std::collections::BTreeMap; mod nns; const N: usize = 2097152; -const COST: usize = 20_000_000; +const COST: usize = 25_000_000; const SKIP: usize = 10_000; #[bench(raw)] @@ -62,6 +62,57 @@ fn vec_int16() -> BenchResult { }) } +#[bench(raw)] +fn vec_nat() -> BenchResult { + let vec: Vec = (0u64..262144).map(Nat::from).collect(); + let mut config = DecoderConfig::new(); + config.set_decoding_quota(COST).set_skipping_quota(SKIP); + bench_fn(|| { + let bytes = { + let _p = bench_scope("1. Encoding"); + Encode!(&vec).unwrap() + }; + { + let _p = bench_scope("2. Decoding"); + Decode!([config]; &bytes, Vec).unwrap(); + } + }) +} + +#[bench(raw)] +fn vec_nat64() -> BenchResult { + let vec: Vec = (0u64..N as u64).collect(); + let mut config = DecoderConfig::new(); + config.set_decoding_quota(COST).set_skipping_quota(SKIP); + bench_fn(|| { + let bytes = { + let _p = bench_scope("1. Encoding"); + Encode!(&vec).unwrap() + }; + { + let _p = bench_scope("2. Decoding"); + Decode!([config]; &bytes, Vec).unwrap(); + } + }) +} + +#[bench(raw)] +fn vec_nat32() -> BenchResult { + let vec: Vec = (0u32..N as u32).collect(); + let mut config = DecoderConfig::new(); + config.set_decoding_quota(COST).set_skipping_quota(SKIP); + bench_fn(|| { + let bytes = { + let _p = bench_scope("1. Encoding"); + Encode!(&vec).unwrap() + }; + { + let _p = bench_scope("2. Decoding"); + Decode!([config]; &bytes, Vec).unwrap(); + } + }) +} + #[bench(raw)] fn btreemap() -> BenchResult { let mut config = DecoderConfig::new();