add benchmark for cloning the board
This commit is contained in:
parent
55050d5451
commit
2b0b97cba8
@ -112,9 +112,75 @@ fn bench_standard_random_moves(c: &mut Criterion) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn bench_board_clone(c: &mut Criterion) {
|
||||||
|
let board = battlesnake::Board {
|
||||||
|
height: 11,
|
||||||
|
width: 11,
|
||||||
|
food: vec![Coord { x: 5, y: 5 }],
|
||||||
|
snakes: vec![
|
||||||
|
battlesnake::Battlesnake {
|
||||||
|
id: "1".to_owned(),
|
||||||
|
name: "1".to_owned(),
|
||||||
|
health: 100,
|
||||||
|
body: vec![Coord { x: 5, y: 1 }; 3],
|
||||||
|
head: Coord { x: 5, y: 1 },
|
||||||
|
length: 3,
|
||||||
|
latency: "0".to_owned(),
|
||||||
|
shout: None,
|
||||||
|
squad: String::new(),
|
||||||
|
},
|
||||||
|
battlesnake::Battlesnake {
|
||||||
|
id: "2".to_owned(),
|
||||||
|
name: "2".to_owned(),
|
||||||
|
health: 100,
|
||||||
|
body: vec![Coord { x: 5, y: 9 }; 3],
|
||||||
|
head: Coord { x: 5, y: 9 },
|
||||||
|
length: 3,
|
||||||
|
latency: "0".to_owned(),
|
||||||
|
shout: None,
|
||||||
|
squad: String::new(),
|
||||||
|
},
|
||||||
|
battlesnake::Battlesnake {
|
||||||
|
id: "3".to_owned(),
|
||||||
|
name: "3".to_owned(),
|
||||||
|
health: 100,
|
||||||
|
body: vec![Coord { x: 1, y: 5 }; 3],
|
||||||
|
head: Coord { x: 1, y: 5 },
|
||||||
|
length: 3,
|
||||||
|
latency: "0".to_owned(),
|
||||||
|
shout: None,
|
||||||
|
squad: String::new(),
|
||||||
|
},
|
||||||
|
battlesnake::Battlesnake {
|
||||||
|
id: "4".to_owned(),
|
||||||
|
name: "4".to_owned(),
|
||||||
|
health: 100,
|
||||||
|
body: vec![Coord { x: 9, y: 5 }; 3],
|
||||||
|
head: Coord { x: 9, y: 5 },
|
||||||
|
length: 3,
|
||||||
|
latency: "0".to_owned(),
|
||||||
|
shout: None,
|
||||||
|
squad: String::new(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
hazards: vec![],
|
||||||
|
};
|
||||||
|
let token_map = SnakeToken::from_board(&board);
|
||||||
|
let mut board =
|
||||||
|
battlesnake::simulation::Board::from_game_board(&board, &token_map, 0, 12, 1, false);
|
||||||
|
|
||||||
|
let mut rng = StdRng::seed_from_u64(0);
|
||||||
|
board.simulate_until(&mut rng, |board| board.turn() > 25);
|
||||||
|
|
||||||
|
c.bench_function("board clone", |b| {
|
||||||
|
b.iter(|| board.clone());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
criterion_group!(
|
criterion_group!(
|
||||||
benches,
|
benches,
|
||||||
bench_duel_random_moves,
|
bench_duel_random_moves,
|
||||||
bench_standard_random_moves
|
bench_standard_random_moves,
|
||||||
|
bench_board_clone,
|
||||||
);
|
);
|
||||||
criterion_main!(benches);
|
criterion_main!(benches);
|
||||||
|
Loading…
Reference in New Issue
Block a user