# Why is JuliaC faster than PackageCompiler?

**URL:** https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909
**Category:** General Usage
**Tags:** question, package-compiler, juliac
**Created:** [January 6, 2026, 12:30pm UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909 "2026-01-06T12:30:26Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![guilhermebodin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/guilhermebodin/32/6982_2.png) [@guilhermebodin](https://discourse.julialang.org/u/guilhermebodin)
#### Post date: [January 6, 2026, 12:30pm UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909/1 "2026-01-06T12:30:26Z")

</div>

Hi all!

I have been using PackageCompiler for a while to distribute applications in Julia. It usually takes between 20 to 40 minutes to compile an app from scratch. In 1.12 I have been gradually changing it to JuliaC without trimming. This compilation takes no longer than 10 minutes.

I would like to know if JuliaC should be faster than PackageCompiler and why?

---

<div class="post-metadata">

### Author: ![NonDairyNeutrino](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nondairyneutrino/32/221496_2.png) [@NonDairyNeutrino](https://discourse.julialang.org/u/NonDairyNeutrino)
#### Post date: [January 6, 2026, 5:48pm UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909/2 "2026-01-06T17:48:44Z")

</div>

I have also noticed the same thing and have been pleasantly surprised 🙂 , especially considering it’s built on top of PackageCompiler.jl. Additionally, JuliaC as a drop-in replacement for PC (i.e. no trimming) has also been really nice for my workflow; now it’s a simple cli call (while managing some environment variables).

---

<div class="post-metadata">

### Author: ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)
#### Post date: [January 7, 2026, 9:31am UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909/3 "2026-01-07T09:31:19Z")

</div>

I suppose you use PackageCompiler.jl (PC) on defaults, and that meaning using create\_app, which does build a sysimage, but NOT incrementally (it’s the default for create\_sysimage, just not for create\_app).

I’m guessing that could be part of the reason, maybe explaining largest part of the speed difference, since the sysimage is large, and you are compiling it again, lots of code you didn’t provide, or might even be using.

You can opt into incremental with create\_app, can you just test it out for me (you both)? And if you can also try with --trim? I mean it does “tree shaking” likely an extra step thus taking longer, but not yet working for all code, I would even like to know how fast even if it fails for you.

I see in JuliaC.jl source code:

```julia-auto
# If C shim sources are provided, compile them to objects for linking stage

```

Note JuliaC uses a C compiler also, unlike PC, so while I’ve not looked closely at how implemented; I know code for I/O is implemented differently redirecting to Core (not exact same functionality, but close enough for most I believe), and maybe something related to it is C compiled, and the C compiler faster?

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [January 7, 2026, 12:06pm UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909/4 "2026-01-07T12:06:22Z")

</div>

> [@guilhermebodin](#):
>
> I would like to know if JuliaC should be faster than PackageCompiler and why?

AFAIU, the end result of JuliaC contains much much less code than PackageCompiler. And the way generating a sysimage work, you compile all code in it before you emit it. So less code → faster generation.

---

<div class="post-metadata">

### Author: ![oscarvdvelde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscarvdvelde/32/202157_2.png) [@oscarvdvelde](https://discourse.julialang.org/u/oscarvdvelde)
#### Post date: [January 7, 2026, 1:31pm UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909/5 "2026-01-07T13:31:30Z")

</div>

I have a Makie GUI where I previously recorded all possible user interactions into a precompile\_statements file for PackageCompiler.jl, but does JuliaC.jl also have such option, or does it work efficiently without it?

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [February 20, 2026, 1:17pm UTC](https://discourse.julialang.org/t/why-is-juliac-faster-than-packagecompiler/134909/6 "2026-02-20T13:17:50Z")

</div>

> [@oscarvdvelde](#):
>
> it work efficiently without it

Since there is no dynamic dispatch allowed with juliac you will end up compiling everything reachable from the entry points.
