# Julia 1.11 is slower than 1.10?

**URL:** <https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077>\
**Category:** Internals & Design\
**Tags:** regression\
**Created:** [October 9, 2024, 2:21am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077 "2024-10-09T02:21:50Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dqeeq](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@dqeeq](https://discourse.julialang.org/u/dqeeq)\
**Post date:** [October 9, 2024, 2:21am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/1 "2024-10-09T02:21:50Z")

</div>

So I was reading the [blog post](https://julialang.org/blog/2024/10/julia-1.11-highlights/) and decided to test the speedup of the [Stdlib excision](https://julialang.org/blog/2024/10/julia-1.11-highlights/#stdlib_excision) section,

```sh
% hyperfine 'julia +1.10 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.10 --startup-file=no -e "1+1"
  Time (mean ± σ): 181.7 ms ± 6.3 ms [User: 107.8 ms, System: 72.8 ms]
  Range (min … max): 173.8 ms … 195.4 ms 16 runs
 
% hyperfine 'julia +1.11 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.11 --startup-file=no -e "1+1"
  Time (mean ± σ): 389.1 ms ± 9.6 ms [User: 427.0 ms, System: 58.9 ms]
  Range (min … max): 372.1 ms … 400.0 ms 10 runs

```

Am I missing something?

```julia
julia> versioninfo()
Julia Version 1.11.0
Commit 501a4f25c2b (2024-10-07 11:40 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, broadwell)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

```

---

<div class="post-metadata">

**Author:** ![karei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/karei/32/214809_2.png) [@karei](https://discourse.julialang.org/u/karei)\
**Post date:** [October 9, 2024, 4:29am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/2 "2024-10-09T04:29:38Z")

</div>

Yes I’m having the same problem. Before the update I was using 1.10.4 and my program benchmarked at 9.794 ms (Memory estimate: 14.39 MiB, allocs estimate: 52697), but in 1.11 it became 10.669 ms Memory estimate: 14.09 MiB, allocs estimate: 82728 estimate: 82728, I don’t know where the extra 30,000 allocations came from. pprof’s results show an increase in allocations for all functions. Finally a partial screenshot of `PProf.Allocs.pprof()`.

 ![1](https://global.discourse-cdn.com/julialang/original/3X/9/1/91e79efea431a99e784199e4a2ac02f5290fae51.png)  
 ![2](https://global.discourse-cdn.com/julialang/original/3X/2/d/2d9f61f8a3848bde43af1be376684198993bf523.png)

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 9, 2024, 5:14am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/4 "2024-10-09T05:14:59Z")

</div>

> [@karei](#):
>
> Yes I’m having the same problem.

Sorry, but this is a completely different problem, this is no startup overhead. There are a few, known, open performance regressions in 1.11: [GitHub · Where software is built](https://github.com/JuliaLang/julia/issues?q=is%3Aissue%20state%3Aopen%20regression%20label%3Aperformance%20%20label%3A%22regression%201.11%22)

---

<div class="post-metadata">

**Author:** ![rashid](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rashid/32/9398_2.png) [@rashid](https://discourse.julialang.org/u/rashid)\
**Post date:** [October 9, 2024, 6:36am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/5 "2024-10-09T06:36:38Z")

</div>

The OP is saying that the [blog post](https://julialang.org/blog/2024/10/julia-1.11-highlights/#stdlib_excision) claims a speed up for the given script, which he is not able to reproduce. I am also seeing a regression for the same.

Are you saying that to obtain the results given in the blog post we need to create a custom system image?

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [October 9, 2024, 6:40am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/6 "2024-10-09T06:40:08Z")

</div>

Indeed, there was a regression between the last release candidate and the release:

```none
$ hyperfine './julia-1.10.5/bin/julia --startup-file=no -e "1+1"'
Benchmark 1: ./julia-1.10.5/bin/julia --startup-file=no -e "1+1"
  Time (mean ± σ): 160.0 ms ± 0.9 ms [User: 77.7 ms, System: 84.9 ms]
  Range (min … max): 158.2 ms … 161.3 ms 18 runs
 
$ hyperfine './julia-1.11.0-rc4/bin/julia --startup-file=no -e "1+1"'
Benchmark 1: ./julia-1.11.0-rc4/bin/julia --startup-file=no -e "1+1"
  Time (mean ± σ): 126.1 ms ± 1.6 ms [User: 61.7 ms, System: 63.3 ms]
  Range (min … max): 122.8 ms … 128.6 ms 23 runs
 
$ hyperfine './julia-1.11.0/bin/julia --startup-file=no -e "1+1"'
Benchmark 1: ./julia-1.11.0/bin/julia --startup-file=no -e "1+1"
  Time (mean ± σ): 304.6 ms ± 4.4 ms [User: 528.1 ms, System: 84.3 ms]
  Range (min … max): 300.0 ms … 315.1 ms 10 runs

```

Maybe because of this additional required compilation:

```none
$ ./julia-1.11.0-rc4/bin/julia --startup-file=no -e "1+1" --trace-compile=stderr
$ ./julia-1.11.0/bin/julia --startup-file=no -e "1+1" --trace-compile=stderr
precompile(Tuple{Base.var"#759#760"{Task}})

```

Issue:

> <https://github.com/JuliaLang/julia/issues/56063>
>
> There was a regression between the last release candidate and the release:
> 
> \`\`\`n…one
> $ hyperfine './julia-1.10.5/bin/julia --startup-file=no -e "1+1"'
> Benchmark 1: ./julia-1.10.5/bin/julia --startup-file=no -e "1+1"
> Time (mean ± σ): 160.0 ms ± 0.9 ms \[User: 77.7 ms, System: 84.9 ms\]
> Range (min … max): 158.2 ms … 161.3 ms 18 runs
>  
> $ hyperfine './julia-1.11.0-rc4/bin/julia --startup-file=no -e "1+1"'
> Benchmark 1: ./julia-1.11.0-rc4/bin/julia --startup-file=no -e "1+1"
> Time (mean ± σ): 126.1 ms ± 1.6 ms \[User: 61.7 ms, System: 63.3 ms\]
> Range (min … max): 122.8 ms … 128.6 ms 23 runs
>  
> $ hyperfine './julia-1.11.0/bin/julia --startup-file=no -e "1+1"'
> Benchmark 1: ./julia-1.11.0/bin/julia --startup-file=no -e "1+1"
> Time (mean ± σ): 304.6 ms ± 4.4 ms \[User: 528.1 ms, System: 84.3 ms\]
> Range (min … max): 300.0 ms … 315.1 ms 10 runs
> \`\`\`
> 
> Maybe because of this additional required compilation:
> 
> \`\`\`none
> $ ./julia-1.11.0-rc4/bin/julia --startup-file=no -e "1+1" --trace-compile=stderr
> $ ./julia-1.11.0/bin/julia --startup-file=no -e "1+1" --trace-compile=stderr
> precompile(Tuple{Base.var"#759#760"{Task}})
> \`\`\`
> 
> Version info:
> 
> \`\`\`none
> Julia Version 1.11.0
> Commit 501a4f25c2b (2024-10-07 11:40 UTC)
> Build Info:
> Official https://julialang.org/ release
> Platform Info:
> OS: Linux (x86\_64-linux-gnu)
> CPU: 8 × AMD Ryzen 3 5300U with Radeon Graphics
> WORD\_SIZE: 64
> LLVM: libLLVM-16.0.6 (ORCJIT, znver2)
> Threads: 1 default, 0 interactive, 1 GC (on 8 virtual cores)
> Environment:
> JULIA\_NUM\_PRECOMPILE\_TASKS = 4
> JULIA\_PKG\_PRECOMPILE\_AUTO = 0
> \`\`\`

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 9, 2024, 6:50am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/7 "2024-10-09T06:50:08Z")

</div>

> [@rashid](#):
>
> Are you saying that to obtain the results given in the blog post we need to create a custom system image?

No. I guess something went wrong with creating the default system image.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [October 9, 2024, 7:13am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/8 "2024-10-09T07:13:22Z")

</div>

> [@nsajko](#):
>
> there was a regression between the last release candidate and the release:

I thought the last release candidate _became_ the release, with just a rename. So there can be changes after the last candidate?

---

<div class="post-metadata">

**Author:** ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)\
**Post date:** [October 9, 2024, 7:18am UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/9 "2024-10-09T07:18:11Z")

</div>

> **[Comparing v1.11.0-rc4...v1.11.0 · JuliaLang/julia](https://github.com/JuliaLang/julia/compare/v1.11.0-rc4...v1.11.0)**
>
> The Julia Programming Language. Contribute to JuliaLang/julia development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [October 9, 2024, 5:02pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/10 "2024-10-09T17:02:51Z")

</div>

Yeah, it seems odd to release a release that was never a release candidate.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [October 9, 2024, 5:24pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/11 "2024-10-09T17:24:22Z")

</div>

And unfortunately, this ([v1.11 generates 50% larger cache files](https://github.com/JuliaLang/julia/issues/53570)), hasn’t improve either.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 9, 2024, 6:57pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/12 "2024-10-09T18:57:22Z")

</div>

Don’t complain, just continue to use 1.10. Julia 1.11 has a lot of new features, it will take some time until the dust settles and everything works better than in 1.10.

---

<div class="post-metadata">

**Author:** ![jbytecode](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jbytecode/32/17719_2.png) [@jbytecode](https://discourse.julialang.org/u/jbytecode)\
**Post date:** [October 9, 2024, 7:01pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/13 "2024-10-09T19:01:37Z")

</div>

Civilization doesn’t follow a straight line; it’s normal for a release to have regressions. The v1.12 release will be better than ever.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [October 9, 2024, 7:03pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/14 "2024-10-09T19:03:43Z")

</div>

Is there a specific place where we can report regressions in packages? The Meshes.jl test suite on CI went from 4m (v1.10) to 6m (v1.11).

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [October 9, 2024, 7:22pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/15 "2024-10-09T19:22:42Z")

</div>

Reporting broad regressions isn’t especially useful, but if you can narrow down the regression to something specific and reproducible, absolutely report it as a Julia issue!

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [October 9, 2024, 7:51pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/16 "2024-10-09T19:51:25Z")

</div>

> [@ufechner7](#):
>
> Don’t complain, just continue to use 1.10.

The “complaints” (I don’t think that’s a fair characterization of the OP actually) are useful to me as an observer interested in how soon I should consider updating. It also sheds light on how stable I should expect new releases to be - like @CameronBieganek, I would have expected it to just be a copy of a previously vetted RC.

> [@ufechner7](#):
>
> it will take some time until the dust settles and everything works better than in 1.10.

Reading discussions here is the only way I can stay abreast of whether we’ve hit that point, I don’t think we should discourage those discussions from taking place.

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 9, 2024, 8:01pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/17 "2024-10-09T20:01:52Z")

</div>

I feel like julia startup time is just not very stable:

```julia
akako@frame16 ~> hyperfine --warmup 1 'julia +1.10.5 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.10.5 --startup-file=no -e "1+1"
  Time (mean ± σ): 141.9 ms ± 21.5 ms [User: 77.6 ms, System: 98.4 ms]
  Range (min … max): 110.9 ms … 165.7 ms 19 runs

akako@frame16 ~> hyperfine --warmup 1 'julia +1.11.0 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.11.0 --startup-file=no -e "1+1"
  Time (mean ± σ): 191.6 ms ± 91.6 ms [User: 386.5 ms, System: 82.8 ms]
  Range (min … max): 86.4 ms … 432.4 ms 15 runs

akako@frame16 ~> hyperfine --warmup 1 'julia +1.11.0 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.11.0 --startup-file=no -e "1+1"
  Time (mean ± σ): 152.9 ms ± 58.9 ms [User: 329.9 ms, System: 58.1 ms]
  Range (min … max): 87.8 ms … 249.5 ms 24 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

julia> versioninfo()
Julia Version 1.11.0
Commit 501a4f25c2b (2024-10-07 11:40 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 16 × AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, znver4)
Threads: 16 default, 0 interactive, 8 GC (on 16 virtual cores)
Environment:
  JULIA_NUM_THREADS = auto

```

maybe try `--warmup`

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 9, 2024, 8:02pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/18 "2024-10-09T20:02:49Z")

</div>

Are you using a laptop? If you do, put it in performance mode, otherwise the results will be all over the place.

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [October 9, 2024, 9:13pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/19 "2024-10-09T21:13:56Z")

</div>

> [@karei](#):
>
> : 14.09 MiB, allocs estimate: 82728 estimate: 82728, I don’t know where the extra 30,000 allocations came from.

The _number_ of allocations, if the performance does not decrease, is not necessarily an issue. Some of this was discussed here: [Increase in allocations with Julia v1.11-beta](https://discourse.julialang.org/t/increase-in-allocations-with-julia-v1-11-beta/112838)

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 9, 2024, 9:23pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/20 "2024-10-09T21:23:20Z")

</div>

I think 1.11.0 is just all over the places:

```julia
akako@frame16 ~> cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
performance
akako@frame16 ~> hyperfine --warmup 1 'julia +1.10.5 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.10.5 --startup-file=no -e "1+1"
  Time (mean ± σ): 112.3 ms ± 2.3 ms [User: 58.5 ms, System: 70.7 ms]
  Range (min … max): 107.2 ms … 116.7 ms 26 runs

akako@frame16 ~> hyperfine --warmup 1 'julia +1.11.0 --startup-file=no -e "1+1"'
Benchmark 1: julia +1.11.0 --startup-file=no -e "1+1"
  Time (mean ± σ): 110.3 ms ± 49.3 ms [User: 204.8 ms, System: 44.9 ms]
  Range (min … max): 80.0 ms … 216.3 ms 34 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

```

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 9, 2024, 9:47pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077/21 "2024-10-09T21:47:41Z")

</div>

Pretty reproducible for me:

```julia
ufechner@framework:~$ hyperfine 'julia +1.11 -e "1+1"'
Benchmark 1: julia +1.11 -e "1+1"
  Time (mean ± σ): 244.9 ms ± 2.1 ms [User: 742.6 ms, System: 73.4 ms]
  Range (min … max): 241.7 ms … 249.3 ms 12 runs

```

Ryzen 7840u, 8 performance cores

[Next page](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077.md?page=2)
