time/benches/benches.rs (36 lines of code) (raw):
// Copyright 2021 Twitter, Inc.
// Licensed under the Apache License, Version 2.0
// http://www.apache.org/licenses/LICENSE-2.0
use criterion::Throughput;
use criterion::{criterion_group, criterion_main, Criterion};
use rustcommon_time::*;
fn instant_seconds_u32(c: &mut Criterion) {
let mut group = c.benchmark_group("Instant<Seconds<u32>>");
group.throughput(Throughput::Elements(1));
group.bench_function("now", |b| b.iter(UnixInstant::<Seconds<u32>>::now));
group.bench_function("recent", |b| b.iter(UnixInstant::<Seconds<u32>>::recent));
}
fn instant_nanoseconds_u64(c: &mut Criterion) {
let mut group = c.benchmark_group("Instant<Nanoseconds<u64>>");
group.throughput(Throughput::Elements(1));
group.bench_function("now", |b| b.iter(UnixInstant::<Nanoseconds<u64>>::now));
group.bench_function("recent", |b| {
b.iter(UnixInstant::<Nanoseconds<u64>>::recent)
});
}
fn datetime(c: &mut Criterion) {
let mut group = c.benchmark_group("DateTime");
group.throughput(Throughput::Elements(1));
group.bench_function("now", |b| b.iter(DateTime::now));
group.bench_function("recent", |b| b.iter(DateTime::recent));
}
fn refresh(c: &mut Criterion) {
let mut group = c.benchmark_group("Clock");
group.throughput(Throughput::Elements(1));
group.bench_function("refresh", |b| b.iter(refresh_clock));
}
criterion_group!(
benches,
instant_seconds_u32,
instant_nanoseconds_u64,
datetime,
refresh
);
criterion_main!(benches);