-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Description
We have noticed that using for several packages got quite noticeably slower from 1.10 to 1.11 to master for several of our packages.
As far as I can tell, the slowdown is before our __init__ methods get run (determined by inserting some code at the start and end of our __init__ methods that call Base.time_ns() and store the result; then comparing it with the time_ns() value just before using XYZ is executed).
Here are the summaries for Hecke. All measurements done on a MacBook Pro M1 Max with macOS 12.7.6; and a second time on a Linux machine with 2x AMD EPYC 9554 64-Core Processor.
macOS with Julia 1.10.9
julia> @time @eval using Hecke
_ _ _
| | | | | | | Software package for
| |__| | ___ ___| | _____ | algorithmic algebraic number theory
| __ |/ _ \/ __| |/ / _ \ |
| | | | __/ (__| < __/ | Manual: https://thofma.github.io/Hecke.jl
|_| |_|\___|\___|_|\_\___| | Version 0.35.16-dev
1.046861 seconds (1.02 M allocations: 71.563 MiB, 3.63% gc time, 3.74% compilation time)
macOS with Julia 1.11.4
julia> @time @eval using Hecke
_ _ _
| | | | | | | Software package for
| |__| | ___ ___| | _____ | algorithmic algebraic number theory
| __ |/ _ \/ __| |/ / _ \ |
| | | | __/ (__| < __/ | Manual: https://thofma.github.io/Hecke.jl
|_| |_|\___|\___|_|\_\___| | Version 0.35.16-dev
1.880171 seconds (3.52 M allocations: 200.677 MiB, 5.19% gc time, 27.90% compilation time: 91% of which was recompilation)
macOS with Julia nightly 1.13.0-DEV.329 (2025-03-31), Commit 6d83987
julia> @time @eval using Hecke
_ _ _
| | | | | | | Software package for
| |__| | ___ ___| | _____ | algorithmic algebraic number theory
| __ |/ _ \/ __| |/ / _ \ |
| | | | __/ (__| < __/ | Manual: https://thofma.github.io/Hecke.jl
|_| |_|\___|\___|_|\_\___| | Version 0.35.16-dev
2.507444 seconds (4.74 M allocations: 248.215 MiB, 5.57% gc time, 5.99% compilation time: 22% of which was recompilation)
Doing the same on a Linux machine with 2x AMD EPYC 9554 64-Core Processor and 1.5 TB of RAM:
With Julia 1.10.9:
julia> @time @eval using Hecke
_ _ _
| | | | | | | Software package for
| |__| | ___ ___| | _____ | algorithmic algebraic number theory
| __ |/ _ \/ __| |/ / _ \ |
| | | | __/ (__| < __/ | Manual: https://thofma.github.io/Hecke.jl
|_| |_|\___|\___|_|\_\___| | Version 0.35.16-dev
1.877488 seconds (1.03 M allocations: 73.516 MiB, 6.12% gc time, 3.49% compilation time)
With Julia 1.11.4:
julia> @time @eval using Hecke
_ _ _
| | | | | | | Software package for
| |__| | ___ ___| | _____ | algorithmic algebraic number theory
| __ |/ _ \/ __| |/ / _ \ |
| | | | __/ (__| < __/ | Manual: https://thofma.github.io/Hecke.jl
|_| |_|\___|\___|_|\_\___| | Version 0.35.16-dev
3.156934 seconds (3.93 M allocations: 226.677 MiB, 11.12% gc time, 28.32% compilation time: 88% of which was recompilation)
With Julia nightly, Version 1.13.0-DEV.340 (2025-04-01), Commit 13311f3
julia> @time @eval using Hecke
_ _ _
| | | | | | | Software package for
| |__| | ___ ___| | _____ | algorithmic algebraic number theory
| __ |/ _ \/ __| |/ / _ \ |
| | | | __/ (__| < __/ | Manual: https://thofma.github.io/Hecke.jl
|_| |_|\___|\___|_|\_\___| | Version 0.35.16-dev
4.705098 seconds (5.38 M allocations: 281.009 MiB, 11.02% gc time, 5.04% compilation time: 24% of which was recompilation)
I can also see this in other packages, e.g. GAP.jl, and even in the pure Julia AbstractAlgebra.jl (though there the numbers are all very small to start with: 0.216439 seconds -> 0.247941 seconds -> 0.421895 seconds)