#![feature(test)]
extern crate test;
extern crate wheel_timer;
use test::Bencher;
use wheel_timer::WheelTimer;
#[bench]
fn bench_wheel_timer_drain(b: &mut Bencher) {
let max_interval = 20;
let mut timer = WheelTimer::new(max_interval);
b.iter(|| {
for j in 0..100 {
timer.schedule(j%max_interval, j%max_interval);
}
for _ in 0..100 {
timer.tick();
}
});
}
#[bench]
fn bench_wheel_timer_fill(b: &mut Bencher) {
let max_interval = 20;
let mut timer = WheelTimer::new(max_interval);
let mut i = 0;
b.iter(|| {
timer.schedule(i%max_interval, i%max_interval);
i = i + 1;
});
}
#[bench]
fn bench_wheel_timer_fast(b: &mut Bencher) {
let max_interval = 2;
let mut timer = WheelTimer::new(max_interval);
let mut i = 0;
b.iter(|| {
timer.schedule(i%max_interval, i%max_interval);
timer.tick();
i = i + 1;
});
}