v0.3.0
This commit is contained in:
parent
7db8e9c3ab
commit
7c73d32ffa
5 changed files with 32 additions and 44 deletions
|
|
@ -1,54 +1,34 @@
|
|||
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
|
||||
use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion};
|
||||
use rand::Rng;
|
||||
|
||||
static ITERS: u32 = 10_000;
|
||||
|
||||
fn compare_crates(c: &mut Criterion) {
|
||||
let mut rng = rand::thread_rng();
|
||||
let mut group = c.benchmark_group("Comparison");
|
||||
for len in [10, 50, 100, 500, 1000] {
|
||||
let samples: Vec<u32> = (0..len).map(|_| rng.gen_range(0..len / 5)).collect();
|
||||
for redundancy in [1, 5, 10, 20, 40] {
|
||||
let samples: Vec<u32> = (0..ITERS)
|
||||
.map(|_| rng.gen_range(0..ITERS / redundancy))
|
||||
.collect();
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("median_accumulator 1:5", len),
|
||||
BenchmarkId::new("median_accumulator", redundancy),
|
||||
&samples,
|
||||
|b, _i| {
|
||||
b.iter(|| {
|
||||
let mut median = median_accumulator::vec::MedianAcc::new();
|
||||
samples.iter().for_each(|s| median.push(*s));
|
||||
median.get_median()
|
||||
black_box(median.get_median());
|
||||
})
|
||||
},
|
||||
);
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("medianheap 1:5", len),
|
||||
BenchmarkId::new("medianheap", redundancy),
|
||||
&samples,
|
||||
|b, _i| {
|
||||
b.iter(|| {
|
||||
let mut median = medianheap::MedianHeap::new();
|
||||
samples.iter().for_each(|s| median.push(*s));
|
||||
median.median()
|
||||
})
|
||||
},
|
||||
);
|
||||
|
||||
let samples: Vec<u32> = (0..len).map(|_| rng.gen_range(0..len)).collect();
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("median_accumulator 1:1", len),
|
||||
&samples,
|
||||
|b, _i| {
|
||||
b.iter(|| {
|
||||
let mut median = median_accumulator::vec::MedianAcc::new();
|
||||
samples.iter().for_each(|s| median.push(*s));
|
||||
median.get_median()
|
||||
})
|
||||
},
|
||||
);
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("medianheap 1:1", len),
|
||||
&samples,
|
||||
|b, _i| {
|
||||
b.iter(|| {
|
||||
let mut median = medianheap::MedianHeap::new();
|
||||
samples.iter().for_each(|s| median.push(*s));
|
||||
median.median()
|
||||
black_box(median.median());
|
||||
})
|
||||
},
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue