• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

JuliaIO / Zarr.jl / 26688103130
90%

Build:
DEFAULT BRANCH: master
Ran 30 May 2026 03:55PM UTC
Jobs 12
Files 32
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 May 2026 03:49PM UTC coverage: 89.477% (-0.005%) from 89.482%
26688103130

push

github

web-flow
Performance improvements (v2 only for now) (#280)

* use bulk copy in zcompress! fallback to avoid per-byte growth

`zcompress(data, NoCompressor())` returns a lazy `reinterpret(UInt8, data)`
view. The old `empty!` + `append!` fallback walked that view element by
element through `_growend!` / `push!`, materialising bytes one at a time —
roughly 67% of CPU time on uncompressed full-chunk V2 writes in profiling.

Replace with `resize!` + `copyto!` so the same path issues a single SIMD /
memcpy bulk copy. Real compressors (Blosc, Zlib, Zstd) are unaffected: they
already return a freshly-allocated `Vector{UInt8}` and `copyto!` handles
that case identically.

Bytes-on-disk are bit-identical; full test suite (2499 tests) passes.

Measured on Apple M2 Ultra, Julia 1.12.6, V2 + NoCompressor + chunks=(Nx,Ny,Nz,1):

  | size                | baseline | patched  | speed-up |
  |---------------------|---------:|---------:|---------:|
  |  128×128×16×50  50M | 702 MB/s | 995 MB/s | 1.42×    |
  |  256×256×32×50 400M | 799 MB/s |1530 MB/s | 1.92×    |
  |  512×512×32×50 1.5G | 776 MB/s |1104 MB/s | 1.42×    |

Reads are unchanged (this fallback is not on the read path).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* use bulk copy in NoCompressor zuncompress! to skip lazy-view walk

The generic `zuncompress!` fallback at the top of `Compressors.jl`
ends up at `copyto!(::Array{T}, ::ReinterpretArray)` when
`c isa NoCompressor`, since `zuncompress(bytes, ::NoCompressor, T)`
returns a lazy `reinterpret(T, bytes)` view. That `copyto!` walks
element by element at ~17 GB/s on Apple silicon vs. ~85 GB/s for
`unsafe_copyto!` on the same memory — a 5× gap. End-to-end V2 reads
absorb most of it via DiskArrays slicing, channel ferry, and storage
I/O, leaving ~25-99% throughput improvement depending on chunk size.

Add a `::NoCompressor`-dispatched `zuncompress!` method alongside
the existing per-compressor versions for Zstd / Zlib / Blosc. Mirror
imag... (continued)

42 of 42 new or added lines in 2 files covered. (100.0%)

4 existing lines in 3 files now uncovered.

1641 of 1834 relevant lines covered (89.48%)

18922.87 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
91.75
-2.06% src/metadata.jl
1
92.65
-1.47% ext/s3store.jl
1
94.68
0.26% src/ZArray.jl
Jobs
ID Job ID Ran Files Coverage
1 run-pre-ubuntu-latest-default - 26688103130.1 30 May 2026 03:55PM UTC 31
87.93
GitHub Action Run
2 run-lts-macOS-latest-default - 26688103130.2 30 May 2026 03:57PM UTC 32
87.98
GitHub Action Run
3 run-nightly-macOS-latest-default - 26688103130.3 30 May 2026 03:57PM UTC 31
87.93
GitHub Action Run
4 run-1-windows-latest-default - 26688103130.4 30 May 2026 04:04PM UTC 31
87.93
GitHub Action Run
5 run-lts-windows-latest-default - 26688103130.5 30 May 2026 04:02PM UTC 32
87.98
GitHub Action Run
6 run-1-ubuntu-latest-default - 26688103130.6 30 May 2026 03:57PM UTC 31
87.93
GitHub Action Run
7 run-nightly-windows-latest-default - 26688103130.7 30 May 2026 04:00PM UTC 31
87.93
GitHub Action Run
8 run-lts-ubuntu-latest-default - 26688103130.8 30 May 2026 03:59PM UTC 32
87.98
GitHub Action Run
9 run-nightly-ubuntu-latest-default - 26688103130.9 30 May 2026 03:56PM UTC 31
87.93
GitHub Action Run
10 run-pre-windows-latest-default - 26688103130.10 30 May 2026 03:58PM UTC 31
87.93
GitHub Action Run
11 run-pre-macOS-latest-default - 26688103130.11 30 May 2026 03:59PM UTC 31
87.93
GitHub Action Run
12 run-1-macOS-latest-default - 26688103130.12 30 May 2026 03:56PM UTC 31
87.93
GitHub Action Run
Source Files on build 26688103130
  • Tree
  • List 32
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26688103130
  • d2a3f79a on github
  • Prev Build on master (#26686360532)
  • Next Build on master (#26690093920)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc