90 lines
2.2 KiB
Rust
90 lines
2.2 KiB
Rust
#![expect(deprecated)]
|
|
|
|
use std::time::Instant as StdInstant;
|
|
|
|
use criterion::Bencher;
|
|
use time::ext::NumericalDuration;
|
|
use time::{Duration, Instant};
|
|
|
|
setup_benchmark! {
|
|
"Instant",
|
|
|
|
fn checked_add(ben: &mut Bencher<'_>) {
|
|
let instant = Instant::now();
|
|
let dt = 5.seconds();
|
|
ben.iter(|| instant.checked_add(dt));
|
|
}
|
|
|
|
fn checked_sub(ben: &mut Bencher<'_>) {
|
|
let instant = Instant::now();
|
|
let dt = 5.seconds();
|
|
ben.iter(|| instant.checked_sub(dt));
|
|
}
|
|
|
|
fn sub(ben: &mut Bencher<'_>) {
|
|
let start: Instant = Instant::now();
|
|
let end: Instant = start + 1.milliseconds();
|
|
ben.iter(|| end - start);
|
|
}
|
|
|
|
fn add_duration(ben: &mut Bencher<'_>) {
|
|
let start = Instant::now();
|
|
let dt: Duration = 1.seconds();
|
|
ben.iter(|| start + dt);
|
|
}
|
|
|
|
fn std_add_duration(ben: &mut Bencher<'_>) {
|
|
let start = StdInstant::now();
|
|
let dt: Duration = 1.milliseconds();
|
|
ben.iter(|| start + dt);
|
|
}
|
|
|
|
fn add_assign_duration(ben: &mut Bencher<'_>) {
|
|
let dt: Duration = 1.milliseconds();
|
|
iter_batched_ref!(
|
|
ben,
|
|
Instant::now,
|
|
[|start| *start += dt]
|
|
);
|
|
}
|
|
|
|
fn std_add_assign_duration(ben: &mut Bencher<'_>) {
|
|
let dt: Duration = 1.milliseconds();
|
|
iter_batched_ref!(
|
|
ben,
|
|
StdInstant::now,
|
|
[|start| *start += dt]
|
|
);
|
|
}
|
|
|
|
fn sub_duration(ben: &mut Bencher<'_>) {
|
|
let instant = Instant::now();
|
|
let dt: Duration = 100.milliseconds();
|
|
ben.iter(|| instant - dt);
|
|
}
|
|
|
|
fn std_sub_duration(ben: &mut Bencher<'_>) {
|
|
let instant = StdInstant::now();
|
|
let dt: Duration = 100.milliseconds();
|
|
ben.iter(|| instant - dt);
|
|
}
|
|
|
|
fn sub_assign_duration(ben: &mut Bencher<'_>) {
|
|
let dt: Duration = 100.milliseconds();
|
|
iter_batched_ref!(
|
|
ben,
|
|
Instant::now,
|
|
[|instant| *instant -= dt]
|
|
);
|
|
}
|
|
|
|
fn std_sub_assign_duration(ben: &mut Bencher<'_>) {
|
|
let dt: Duration = 100.milliseconds();
|
|
iter_batched_ref!(
|
|
ben,
|
|
StdInstant::now,
|
|
[|instant| *instant -= dt]
|
|
);
|
|
}
|
|
}
|