Avatar for the zarr-developers user
zarr-developers
zarr-python
BlogDocsChangelog

perf: Optimize Morton order with hypercube and vectorization

#3708
Comparing
mkitti:mkitti-morton-decode-optimization
(
65205b3
) with
main
(
23596c1
)
CodSpeed Performance Gauge
+2%
Untouched
48
New
3
Skipped
6

Benchmarks

57 total
test_sharded_morton_indexing[(32, 32, 32)-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
N/A
N/A1.2 s
test_sharded_morton_indexing[(16, 16, 16)-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
N/A
N/A147.5 ms
test_sharded_morton_indexing_large[(32, 32, 32)-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
N/A
N/A9.3 s
test_write_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=None)-None]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+4%
1.2 s1.2 s
test_slice_indexing[None-(0, 0, 0)-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+4%
880.8 µs850.9 µs
test_read_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=None)-None]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
645.2 ms624.4 ms
test_write_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=None)-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
1.7 s1.6 s
test_slice_indexing[None-(slice(None, None, None), slice(0, 3, 2), slice(0, 10, None))-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+3%
3.8 ms3.7 ms
test_slice_indexing[None-(slice(None, 10, None), slice(None, 10, None), slice(None, 10, None))-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+3%
902.3 µs875 µs
test_write_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=(1000,))-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
3.2 s3.1 s
test_read_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=None)-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
986.3 ms957.4 ms
test_slice_indexing[(50, 50, 50)-(0, 0, 0)-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+3%
1.8 ms1.7 ms
test_slice_indexing[(50, 50, 50)-(slice(None, None, None), slice(0, 3, 2), slice(0, 10, None))-memory_get_latency]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+3%
7.2 ms7 ms
test_read_array[memory-Layout(shape=(1000000,), chunks=(1000,), shards=None)-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
599.2 ms582.8 ms
test_read_array[memory-Layout(shape=(1000000,), chunks=(100,), shards=(1000000,))-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
6.1 s6 s
test_slice_indexing[None-(slice(None, None, None), slice(0, 3, 2), slice(0, 10, None))-memory_get_latency]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+3%
4.2 ms4.1 ms
test_read_array[local-Layout(shape=(1000000,), chunks=(100,), shards=(1000000,))-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+3%
6 s5.9 s
test_read_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=(1000,))-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+2%
1.8 s1.7 s
test_write_array[local-Layout(shape=(1000000,), chunks=(1000,), shards=(1000,))-None]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+2%
2.8 s2.7 s
test_read_array[memory-Layout(shape=(1000000,), chunks=(1000,), shards=(1000,))-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+2%
1.3 s1.3 s
test_read_array[local-Layout(shape=(1000000,), chunks=(100,), shards=(1000000,))-None]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+2%
2.9 s2.9 s
test_slice_indexing[(50, 50, 50)-(0, 0, 0)-memory_get_latency]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+2%
4.2 ms4.1 ms
test_slice_indexing[None-(slice(10, -10, 4), slice(10, -10, 4), slice(10, -10, 4))-memory]
tests/benchmarks/test_indexing.py
CodSpeed Performance Gauge
+2%
209.3 ms205.1 ms
test_write_array[memory-Layout(shape=(1000000,), chunks=(1000,), shards=None)-gzip]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+2%
1 s1 s
test_read_array[memory-Layout(shape=(1000000,), chunks=(100,), shards=(1000000,))-None]
tests/benchmarks/test_e2e.py
CodSpeed Performance Gauge
+2%
2.9 s2.9 s

Commits

Click on a commit to change the comparison range
Base
main
23596c1
+0.76%
fix:Address type annotation and linting issues
ef18210
23 hours ago
by mkitti
-0.5%
test: Add Morton order benchmarks with cache clearing
443b5d4
18 hours ago
by mkitti
+0.59%
fix:Bound LRU cache of _morton_order to 16
1cdcbdf
18 hours ago
by mkitti
-2.47%
Merge branch 'main' into mkitti-morton-decode-optimization
536f520
18 hours ago
by d-v-b
+3.62%
Merge branch 'main' into mkitti-morton-decode-optimization
65205b3
16 hours ago
by d-v-b
© 2026 CodSpeed Technology
Home Terms Privacy Docs