1 extern crate chrono; 2 extern crate criterion; 3 4 use criterion::{black_box, criterion_group, criterion_main, Criterion}; 5 6 use chrono::NaiveDateTime; 7 bench_ser_naivedatetime_string(c: &mut Criterion)8fn bench_ser_naivedatetime_string(c: &mut Criterion) { 9 c.bench_function("bench_ser_naivedatetime_string", |b| { 10 let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap(); 11 b.iter(|| { 12 black_box(serde_json::to_string(&dt)).unwrap(); 13 }); 14 }); 15 } 16 bench_ser_naivedatetime_writer(c: &mut Criterion)17fn bench_ser_naivedatetime_writer(c: &mut Criterion) { 18 c.bench_function("bench_ser_naivedatetime_writer", |b| { 19 let mut s: Vec<u8> = Vec::with_capacity(20); 20 let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap(); 21 b.iter(|| { 22 let s = &mut s; 23 s.clear(); 24 black_box(serde_json::to_writer(s, &dt)).unwrap(); 25 }); 26 }); 27 } 28 29 criterion_group!(benches, bench_ser_naivedatetime_writer, bench_ser_naivedatetime_string); 30 criterion_main!(benches); 31