Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Substantial performance regression on 1.11 relative to 1.10 #542

Open
palday opened this issue Feb 28, 2025 · 5 comments
Open

Substantial performance regression on 1.11 relative to 1.10 #542

palday opened this issue Feb 28, 2025 · 5 comments

Comments

@palday
Copy link
Contributor

palday commented Feb 28, 2025

Casual testing on my M1 Macbook shows a pretty substantial performance regression on tests in 1.11 relative to 1.10.

Julia 1.10:

Test Summary: |  Pass  Total     Time
Arrow         | 66047  66047  5m08.9s

Julia 1.11:

Test Summary: |  Pass  Total      Time
Arrow         | 66047  66047  13m54.1s
@Moelf
Copy link
Contributor

Moelf commented Feb 28, 2025

is this just running ]test? if so it may not be a performance regression on normal usage

@palday
Copy link
Contributor Author

palday commented Feb 28, 2025

Why would testing be different?

Also, more than doubling the time it takes to run tests seems ... less than optimal when it comes to development.

@Moelf
Copy link
Contributor

Moelf commented Feb 28, 2025

tests are run with stuff like bounds checking forced "on" for everything, it could be some heuristics change from Julia compiler side that accidentally changed compilation result for test-time only

less than optimal when it comes to development.

yes assuming there is development...

@palday
Copy link
Contributor Author

palday commented Feb 28, 2025

Manually running tests outside of Pkg.test:

1.10:

julia +1.10 --project=test -e'using Pkg; Pkg.develop(path="./"); Pkg.update(); @time include("test/runtests.jl")'
Test Summary: | Pass  Total  Time
ArrowTypes    |  127    127  0.5s
Test Summary:                       | Pass  Total  Time
Date and time wrappers with missing |    4      4  5.0s
Test Summary:      | Pass  Total  Time
`default(T) isa T` |   10     10  0.0s
Test Summary: |  Pass  Total     Time
Arrow         | 66047  66047  3m48.7s
239.948859 seconds (897.30 M allocations: 59.172 GiB, 5.05% gc time, 97.20% compilation time: <1% of which was recompilation)

1.11:

julia +1.11 --project=test -e'using Pkg; Pkg.develop(path="./"); Pkg.update(); @time include("test/runtests.jl")'
Test Summary: | Pass  Total  Time
ArrowTypes    |  127    127  0.5s
Test Summary:                       | Pass  Total  Time
Date and time wrappers with missing |    4      4  5.9s
Test Summary:      | Pass  Total  Time
`default(T) isa T` |   10     10  0.0s
Test Summary: |  Pass  Total      Time
Arrow         | 66047  66047  11m50.4s
724.425272 seconds (4.33 G allocations: 196.264 GiB, 2.73% gc time, 99.11% compilation time: <1% of which was recompilation

@Moelf
Copy link
Contributor

Moelf commented Feb 28, 2025

that's pretty bad huh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants