From 316286b8b65ac5a7abf5117dc942a70b94e1be53 Mon Sep 17 00:00:00 2001 From: brian cully Date: Mon, 29 Dec 2025 12:50:01 -0500 Subject: bench with poly finding --- site/index.html | 2 +- site/pure.mjs | 2 ++ src/lib.rs | 10 ++++++++++ src/state.rs | 4 ++-- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/site/index.html b/site/index.html index 97b5997..5ef2cf6 100644 --- a/site/index.html +++ b/site/index.html @@ -22,7 +22,7 @@

bench

- +

diff --git a/site/pure.mjs b/site/pure.mjs index 03b5996..bc3f8a4 100644 --- a/site/pure.mjs +++ b/site/pure.mjs @@ -268,6 +268,8 @@ export default async function () { const start = self.performance.now(); for (let i = 0; i < iters; i++) { update(points); + points.sort((a, b) => a.y > b.y); + findPoly3(points); } const end = self.performance.now(); const delta = end - start; diff --git a/src/lib.rs b/src/lib.rs index dfbeaae..8e650e5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -118,6 +118,16 @@ pub fn init() -> JSResult<()> { let perf = window().performance().unwrap(); let start = perf.now(); for _ in 0..iters { + s.points.sort_by(|a, b| { + if a.y > b.y { + std::cmp::Ordering::Greater + } else if a.y == b.y { + std::cmp::Ordering::Equal + } else { + std::cmp::Ordering::Less + } + }); + s.find_poly(); s.update()?; } let end = perf.now(); diff --git a/src/state.rs b/src/state.rs index 09120fb..592f26e 100644 --- a/src/state.rs +++ b/src/state.rs @@ -19,7 +19,7 @@ pub struct State { canvas: HtmlCanvasElement, ctx: CanvasRenderingContext2d, fps: HtmlElement, - points: Vec, + pub points: Vec, last_time: Option, inter_count: u16, } @@ -124,7 +124,7 @@ impl State { Ok(()) } - fn find_poly(&self) -> Vec<&Point> { + pub fn find_poly(&self) -> Vec<&Point> { let p1 = Point::new(0.0, 0.0); let p2 = Point::new(1.0, 0.0); let mut last_line = Line::new(&p1, &p2); -- cgit v1.3