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

JuliaLang / julia / #38203
77%

Build:
DEFAULT BRANCH: master
Ran 27 Aug 2025 11:51AM UTC
Jobs 1
Files 304
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

26 Aug 2025 10:51PM UTC coverage: 78.544% (+0.2%) from 78.315%
#38203

push

local

web-flow
System image compression with zstd (#59227)

Revived version of #48244, with a slightly different approach. This
version looks for a function pointer called `jl_image_unpack` inside
compiled system images and invokes it to get the `jl_image_buf_t`
struct. Two implementations, `jl_image_unpack_zstd` and
`jl_image_unpack_uncomp` are provided (for comparison). The zstd
compression is applied only to the heap image, and not the compiled
code, since that can be shared across Julia processes.

TODO: test a few different compression settings and enable by default.

Example data from un-trimmed juliac "hello world":
```
156M  hello-uncomp
 43M  hello-zstd
 48M  hello-zstd-1
 45M  hello-zstd-5
 43M  hello-zstd-15
 39M  hello-zstd-22

$ hyperfine -w3 ./hello-uncomp 
Benchmark 1: ./hello-uncomp
  Time (mean ± σ):      74.4 ms ±   0.8 ms    [User: 51.9 ms, System: 19.0 ms]
  Range (min … max):    73.0 ms …  76.6 ms    39 runs

$ hyperfine -w3 ./hello-zstd-1
Benchmark 1: ./hello-zstd-1
  Time (mean ± σ):     152.4 ms ±   0.5 ms    [User: 138.2 ms, System: 12.0 ms]
  Range (min … max):   151.4 ms … 153.2 ms    19 runs
 
$ hyperfine -w3 ./hello-zstd-5 
Benchmark 1: ./hello-zstd-5
  Time (mean ± σ):     154.3 ms ±   0.5 ms    [User: 139.6 ms, System: 12.4 ms]
  Range (min … max):   153.5 ms … 155.2 ms    19 runs

$ hyperfine -w3 ./hello-zstd-15
Benchmark 1: ./hello-zstd-15
  Time (mean ± σ):     135.9 ms ±   0.5 ms    [User: 121.6 ms, System: 12.0 ms]
  Range (min … max):   135.1 ms … 136.5 ms    21 runs
 
$ hyperfine -w3 ./hello-zstd-22
Benchmark 1: ./hello-zstd-22
  Time (mean ± σ):     149.0 ms ±   0.6 ms    [User: 134.7 ms, System: 12.1 ms]
  Range (min … max):   147.7 ms … 150.4 ms    19 runs
```

---------

Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com>

1 of 2 new or added lines in 1 file covered. (50.0%)

302 existing lines in 13 files now uncovered.

48863 of 62211 relevant lines covered (78.54%)

9804672.05 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
62.33
16.91% base/util.jl

Uncovered Existing Lines

Lines Coverage ∆ File
1
34.83
-0.28% base/client.jl
1
78.76
-0.13% base/stream.jl
2
78.36
-1.49% base/partr.jl
2
84.57
-0.38% base/task.jl
2
38.4
-0.41% stdlib/FileWatching/src/FileWatching.jl
7
78.51
-2.01% base/process.jl
11
72.73
-6.25% base/experimental.jl
12
83.15
-6.74% base/threadingconstructs.jl
18
94.19
1.26% stdlib/InteractiveUtils/src/macros.jl
30
96.44
0.01% stdlib/Test/src/Test.jl
35
15.75
-14.0% stdlib/Random/src/DSFMT.jl
39
76.77
-13.17% base/lock.jl
142
73.54
0.05% base/loading.jl
Jobs
ID Job ID Ran Files Coverage
1 #38203.1 27 Aug 2025 11:51AM UTC 304
78.54
Source Files on build #38203
  • Tree
  • List 304
  • Changed 29
  • Source Changed 0
  • Coverage Changed 29
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • cbea8cf2 on github
  • Prev Build on master
  • Next Build on master
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