add serialization benchmark
This commit is contained in:
parent
8de2cc375f
commit
80da04381c
|
@ -62,3 +62,8 @@ all-features = true
|
|||
[[bench]]
|
||||
name = "parsing"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "serde"
|
||||
harness = false
|
||||
required-features = ["serde"]
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
extern crate chrono;
|
||||
extern crate criterion;
|
||||
|
||||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
|
||||
use chrono::NaiveDateTime;
|
||||
|
||||
fn bench_ser_naivedatetime_string(c: &mut Criterion) {
|
||||
c.bench_function("bench_ser_naivedatetime_string", |b| {
|
||||
let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap();
|
||||
b.iter(|| {
|
||||
black_box(serde_json::to_string(&dt)).unwrap();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
fn bench_ser_naivedatetime_writer(c: &mut Criterion) {
|
||||
c.bench_function("bench_ser_naivedatetime_writer", |b| {
|
||||
let mut s: Vec<u8> = Vec::with_capacity(20);
|
||||
let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap();
|
||||
b.iter(|| {
|
||||
let s = &mut s;
|
||||
s.clear();
|
||||
black_box(serde_json::to_writer(s, &dt)).unwrap();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench_ser_naivedatetime_writer, bench_ser_naivedatetime_string);
|
||||
criterion_main!(benches);
|
Loading…
Reference in New Issue