From d6021a6276ebde06922a52a43c45157af5af7773 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 16 May 2024 13:58:36 +0200 Subject: [PATCH] chore: Remove leftover benches/ folder --- benches/benchmarks.rs | 121 ------------------------------------ benches/mixed.png | Bin 39959 -> 0 bytes benches/non-transparent.png | Bin 39070 -> 0 bytes 3 files changed, 121 deletions(-) delete mode 100644 benches/benchmarks.rs delete mode 100644 benches/mixed.png delete mode 100644 benches/non-transparent.png diff --git a/benches/benchmarks.rs b/benches/benchmarks.rs deleted file mode 100644 index 59ab4bc..0000000 --- a/benches/benchmarks.rs +++ /dev/null @@ -1,121 +0,0 @@ -use breakwater::{ - framebuffer::FrameBuffer, - parser::{parse_pixelflut_commands, ParserState}, - test::helpers::DevNullTcpStream, -}; -use criterion::{ - BenchmarkId, Criterion, {criterion_group, criterion_main}, -}; -use pixelbomber::image_handler; -use pixelbomber::image_handler::ImageConfig; -use std::{sync::Arc, time::Duration}; - -const FRAMEBUFFER_WIDTH: usize = 1920; -const FRAMEBUFFER_HEIGHT: usize = 1080; - -async fn invoke_parse_pixelflut_commands( - input: &[u8], - fb: &Arc, - parser_state: ParserState, -) { - let mut stream = DevNullTcpStream::default(); - parse_pixelflut_commands(input, fb, &mut stream, parser_state).await; -} - -fn benchmark_settings(c: &mut Criterion, name: &str, file: &str, config: ImageConfig) { - let mut commands = image_handler::load(vec![file], config); - let command = commands.pop().unwrap(); - c.bench_with_input( - BenchmarkId::new(name, format!("{FRAMEBUFFER_WIDTH} x {FRAMEBUFFER_HEIGHT}")), - &command, - |b, input| { - let fb = Arc::new(FrameBuffer::new(FRAMEBUFFER_WIDTH, FRAMEBUFFER_HEIGHT)); - let parser_state = ParserState::default(); - b.to_async(tokio::runtime::Runtime::new().unwrap()) - .iter(|| invoke_parse_pixelflut_commands(input, &fb, parser_state.clone())); - }, - ); -} - -fn from_elem(c: &mut Criterion) { - benchmark_settings( - c, - "parse_draw_commands_ordered", - "benches/non-transparent.png", - image_handler::ImageConfigBuilder::new() - .width(FRAMEBUFFER_WIDTH as u32) - .height(FRAMEBUFFER_HEIGHT as u32) - .shuffle(false) - .build(), - ); - - benchmark_settings( - c, - "parse_draw_commands_shuffled", - "benches/non-transparent.png", - image_handler::ImageConfigBuilder::new() - .width(FRAMEBUFFER_WIDTH as u32) - .height(FRAMEBUFFER_HEIGHT as u32) - .shuffle(true) - .build(), - ); - - benchmark_settings( - c, - "parse_mixed_draw_commands", - "benches/mixed.png", - image_handler::ImageConfigBuilder::new() - .width(FRAMEBUFFER_WIDTH as u32) - .height(FRAMEBUFFER_HEIGHT as u32) - .shuffle(false) - .gray_usage(true) - .build(), - ); - - benchmark_settings( - c, - "parse_draw_commands_with_offset", - "benches/non-transparent.png", - image_handler::ImageConfigBuilder::new() - .width(FRAMEBUFFER_WIDTH as u32) - .height(FRAMEBUFFER_HEIGHT as u32) - .shuffle(false) - .offset_usage(true) - .build(), - ); - - // let read_commands = get_commands_to_read_rect(FRAMEBUFFER_WIDTH, FRAMEBUFFER_HEIGHT); - // let read_commands = read_commands.as_bytes(); - - // c.bench_with_input( - // BenchmarkId::new( - // "parse_read_commands", - // format!("{FRAMEBUFFER_WIDTH} x {FRAMEBUFFER_HEIGHT}"), - // ), - // &read_commands, - // |b, input| { - // let fb = Arc::new(FrameBuffer::new(FRAMEBUFFER_WIDTH, FRAMEBUFFER_HEIGHT)); - // let parser_state = ParserState::default(); - // b.to_async(tokio::runtime::Runtime::new().unwrap()) - // .iter(|| invoke_parse_pixelflut_commands(input, &fb, parser_state.clone())); - // }, - // ); -} - -criterion_group!( - name = benches; - config = Criterion::default().warm_up_time(Duration::from_secs(10)).measurement_time(Duration::from_secs(30)); - targets = from_elem -); -criterion_main!(benches); - -// Performance numbers - -// Starting point (while loop) 17.967 ms (does not count) 26.289 ms 26.725 ms -// Loop {} instead of while 19.118 ms (does not count) 26.563 ms 28.125 ms -// => Change not worth it. Use while loop for better readability - -// Starting point (checking for command by indexing [u8] buffer) 27.332 ms 27.175 ms 27.848 ms -// Check for command by reading u32 25.590 ms 25.327 ms 23.174 ms -// => Accepted the change :) So far we have only read changed the parsing for "PX " logic, lets also change the other parsing logics -// Check for command by reading u32 everywhere 24.465 ms 23.435 ms 22.087 ms diff --git a/benches/mixed.png b/benches/mixed.png deleted file mode 100644 index 0cdb00fafc0d9f087ec075c40f351e46b9b50d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39959 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 YZff*xO?}G(cc2m?H)oEuVWxBAzu-SFGXMYp