Conversation
…tion pytest-benchmark cases for reader open, tile and point on a generated 4x720x1440 zarr store. The store is wrapped in zarr's `LatencyStore` (0 and 30 ms per `get`) so window-vs-slice reads and batched-vs-serial round trips show up as time, and a counting wrapper records `store_gets` per operation in extra_info as an exact, branch-comparable number. Skipped unless --benchmark-only/--benchmark-enable is given, so the normal suite is unaffected. The fixture already carries 2-D mask and flag variables so a masking feature can add its cases without changing the store. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
zarr only derives a copy of the store through `_with_store` when opening a writable store in mode "r". Wrapping a read-only LocalStore means the counting instance is used as-is, so the shared counter cell, the `_with_store` override and `reset()` can go; the count is a plain attribute. `_record` now asserts the count is non-zero so a future zarr change that reintroduces a copy fails loudly rather than reporting 0. zarr's LoggingStore was considered instead: it gives identical counts but calls inspect.stack() per store call (~0.7 ms each), which roughly doubled the 0 ms latency timings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Relocking in the development sandbox wrote two things unrelated to this branch into uv.lock: - an [options] block with exclude-newer-span = "P1W" (the sandbox's package-install cooldown), which does not belong upstream; - four dependency markers removed (pycparser, h11, truststore, ptyprocess) by a different uv version; relocking an untouched main with that uv produces the same lines. Restore main's lines for both; the branch's own dependency change and the titiler-multidim 0.9.0 -> 0.9.1 self-version (main's lock is stale after the 0.9.1 release) are kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
maxrjones
marked this pull request as draft
October 2, 2026 19:17
Member
Author
|
I'm going to convert this to a draft. It's been useful for me testing out PRs, but I'm sure there's a better way to implement these benchmarks. So I'd like to take more time on this one before asking for a review. |
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.
This PR adds some very minimal benchmarking. I created this in order to evaluate #151 relative to a dask-free alternative implementations.
Testing
PR checks
run-cdk-checkslabel to this PR.deploy-devlabel. It smoke-tests tiles from the native MUR, virtual MUR, and virtual NLDAS Icechunk stores after deployment.