test(map): add benchmarks for v1 and q10 map parsing and rendering - #970
Open
allenporter wants to merge 2 commits into
Open
allenporter wants to merge 2 commits into
allenporter wants to merge 2 commits into
Conversation
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The documented CodSpeed workflow lacks its dependency, and invalid iteration counts can crash the CLI.
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Adds benchmark and profiling coverage for V1 and Q10 map parsing and rendering.
Changes:
- Adds five pytest/CodSpeed benchmark workloads.
- Adds synthetic full-scale Q10 rendering data.
- Adds standalone timing and
cProfilereporting.
| File | Summary | Findings |
|---|---|---|
tests/map/test_benchmarks.py |
Benchmark tests and standalone profiling runner | Add the CodSpeed development dependency and validate positive --iterations values. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Collaborator
|
I like where this is heading :) Trying to think of some edge cases that are worth encoding here:
Should we be comparing the pixels of the images as well? |
This was referenced Sep 28, 2026
allenporter
marked this pull request as draft
September 28, 2026 03:34
Contributor
Author
|
Thanks for the feedback @Lash-L! I've updated the benchmark suite to incorporate all of those permutations:
|
allenporter
force-pushed
the
perf-map-benchmarks
branch
from
September 28, 2026 05:04
cd3b183 to
53674bd
Compare
allenporter
force-pushed
the
perf-map-benchmarks
branch
from
October 4, 2026 22:39
53674bd to
79bba04
Compare
allenporter
marked this pull request as ready for review
October 4, 2026 22:49
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Adds a comprehensive benchmark and profiling suite for Roborock V1 and Q10 map parsing in
tests/map/test_benchmarks.py.Capabilities
pytest, and automatically collects high-precision wall-time/callgraph benchmarks when run withpytest --codspeed.python -m tests.map.test_benchmarksor with--profileto print latency percentiles (min, median, mean, p95), ops/sec, andcProfilehotspot breakdowns.PNG), color mode (RGBA), and non-empty bounding boxes on every rendered benchmark output outside the timed loop to guarantee benchmarked changes preserve visual output correctness.Workloads & Permutations Benchmarked
drawables=[]) vs default drawables vs all available drawables (list(Drawable)).s5_fw2008_with_segments.bin).s6_fw2652_with_active_segment_and_no_mop_zone.bin).b01_q10_map.bin).b01_q10_map.bin).Baseline Benchmark Results