Added benchmark for Batch

This commit is contained in:
2022-12-19 07:42:08 +01:00
parent 2bdd3d9b89
commit 2b83ee5ef9
8 changed files with 131 additions and 66 deletions

62
benches/batch.rs Normal file
View File

@@ -0,0 +1,62 @@
use std::collections::HashMap;
use criterion::{criterion_group, criterion_main, Criterion};
use trueskill_tt::{
agent::Agent, batch::Batch, gaussian::Gaussian, player::Player, IndexMap, BETA, GAMMA, MU,
P_DRAW, SIGMA,
};
fn criterion_benchmark(criterion: &mut Criterion) {
let mut index = IndexMap::new();
let a = index.get_or_create("a");
let b = index.get_or_create("b");
let c = index.get_or_create("c");
let agents = {
let mut map = HashMap::new();
map.insert(
a,
Agent {
player: Player::new(Gaussian::new(MU, SIGMA), BETA, GAMMA),
..Default::default()
},
);
map.insert(
b,
Agent {
player: Player::new(Gaussian::new(MU, SIGMA), BETA, GAMMA),
..Default::default()
},
);
map.insert(
c,
Agent {
player: Player::new(Gaussian::new(MU, SIGMA), BETA, GAMMA),
..Default::default()
},
);
map
};
let mut composition = Vec::new();
let mut results = Vec::new();
let mut weights = Vec::new();
for _ in 0..100 {
composition.push(vec![vec![a], vec![b]]);
results.push(vec![1.0, 0.0]);
weights.push(vec![vec![1.0], vec![1.0]]);
}
let mut batch = Batch::new(composition, results, weights, 1, P_DRAW, &agents);
criterion.bench_function("Batch::iteration", |b| {
b.iter(|| batch.iteration(0, &agents))
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);