Skip to content

Commit

Permalink
add nanoserde to benchmarks (#50)
Browse files Browse the repository at this point in the history
  • Loading branch information
knickish committed Jul 22, 2023
1 parent 99697f2 commit b9ae75c
Show file tree
Hide file tree
Showing 16 changed files with 11,831 additions and 10,638 deletions.
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ flatbuffers = { version = "23.1.21", optional = true }
libflate = "1.3.0"
msgpacker = { version = "0.4", optional = true }
nachricht-serde = { version = "0.4.0", optional = true }
nanoserde = {version = "0.1.33", optional = true }
parity-scale-codec = { version = "3.5.0", features = ["full"], optional = true }
parity-scale-codec-derive = { version = "3.1.4", optional = true }
postcard = { version = "1.0.4", features = ["alloc"], optional = true }
Expand Down
14 changes: 14 additions & 0 deletions benches/bench.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ use rust_serialization_benchmark::bench_flatbuffers;
use rust_serialization_benchmark::bench_msgpacker;
#[cfg(feature = "nachricht-serde")]
use rust_serialization_benchmark::bench_nachricht_serde;
#[cfg(feature = "nanoserde")]
use rust_serialization_benchmark::bench_nanoserde;
#[cfg(feature = "scale")]
use rust_serialization_benchmark::bench_parity_scale_codec;
#[cfg(feature = "postcard")]
Expand Down Expand Up @@ -211,6 +213,9 @@ fn bench_log(c: &mut Criterion) {

#[cfg(feature = "speedy")]
bench_speedy::bench(BENCH, c, &data);

#[cfg(feature = "nanoserde")]
bench_nanoserde::bench(BENCH, c, &data);
}

fn bench_mesh(c: &mut Criterion) {
Expand Down Expand Up @@ -355,6 +360,9 @@ fn bench_mesh(c: &mut Criterion) {

#[cfg(feature = "speedy")]
bench_speedy::bench(BENCH, c, &data);

#[cfg(feature = "nanoserde")]
bench_nanoserde::bench(BENCH, c, &data);
}

fn bench_minecraft_savedata(c: &mut Criterion) {
Expand Down Expand Up @@ -502,6 +510,9 @@ fn bench_minecraft_savedata(c: &mut Criterion) {

#[cfg(feature = "speedy")]
bench_speedy::bench(BENCH, c, &data);

#[cfg(feature = "nanoserde")]
bench_nanoserde::bench(BENCH, c, &data);
}

fn bench_mk48(c: &mut Criterion) {
Expand Down Expand Up @@ -645,6 +656,9 @@ fn bench_mk48(c: &mut Criterion) {

#[cfg(feature = "speedy")]
bench_speedy::bench(BENCH, c, &data);

#[cfg(feature = "nanoserde")]
bench_nanoserde::bench(BENCH, c, &data);
}

pub fn criterion_benchmark(c: &mut Criterion) {
Expand Down
28 changes: 28 additions & 0 deletions src/bench_nanoserde.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
use criterion::{black_box, Criterion};
use nanoserde::{DeBin, SerBin};

pub fn bench<T>(name: &'static str, c: &mut Criterion, data: &T)
where
T: DeBin + SerBin,
{
let mut group = c.benchmark_group(format!("{}/nanoserde", name));

group.bench_function("serialize", |b| {
b.iter(|| {
SerBin::serialize_bin(black_box(data));
black_box(());
})
});

let deserialize_buffer = SerBin::serialize_bin(data);

group.bench_function("deserialize", |b| {
b.iter(|| {
black_box(<T as DeBin>::deserialize_bin(black_box(&deserialize_buffer)).unwrap());
})
});

crate::bench_size(name, "nanoserde", deserialize_buffer.as_slice());

group.finish();
}
Loading

0 comments on commit b9ae75c

Please sign in to comment.