From 5cf50403fabbb3e79b771bc157d5a4c57c614570 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 18 Dec 2025 21:01:36 +0100 Subject: add benchmark to measure movement packet count --- server/src/benchmark.rs | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 server/src/benchmark.rs (limited to 'server/src/benchmark.rs') diff --git a/server/src/benchmark.rs b/server/src/benchmark.rs new file mode 100644 index 00000000..ec4f10e8 --- /dev/null +++ b/server/src/benchmark.rs @@ -0,0 +1,55 @@ +/* + Hurry Curry! - a game about cooking + Copyright (C) 2025 Hurry Curry! Contributors + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, version 3 of the License only. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +*/ + +use crate::server::{Server, ServerConfig}; +use anyhow::Result; +use hurrycurry_protocol::PacketC; +use std::{path::PathBuf, time::Instant}; +use tokio::sync::broadcast; + +pub fn benchmark(data_path: PathBuf) -> Result<()> { + let mut server = Server::new( + data_path, + ServerConfig::default(), + broadcast::channel(1024).0, + )?; + + server.load(server.index.generate_with_book("junior").unwrap(), None); + + let start = Instant::now(); + let mut packets = 0; + let mut packets_movement = 0; + loop { + if server.tick(1. / 50.).is_some() { + break; + } + while let Some(p) = server.packet_out.pop_front() { + packets += 1; + if let PacketC::Movement { .. } = &p { + packets_movement += 1; + } + } + } + println!("simulation took {:?}", start.elapsed()); + println!( + "packets broadcast: {packets} ({packets_movement} movement, {} other)", + packets - packets_movement + ); + + Ok(()) +} -- cgit v1.3