-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
20+ minute precompilation regression on v0.6.1 #24383
Comments
Chris narrowed it down to BoundaryValueDiffEq.jl. I ran the pre-compilation of for both Julia 0.6 versions and see a 4x regression: Here the comparison of v0.6.0 and v0.6.1 of precompilation of BoundaryValueDiffEq.jl (with the
|
Also on master. I notice that BandedMatrices.ji is about 120MB, apparently due to excessive inference. I suspect #21677, as much as I like that change. |
BoundaryValueDiffEq is the only library in the DiffEq stack that has BandedMatrices.jl, so that seems like that's where it is. I'll remove BoundaryValueDiffEq.jl for now from DifferentialEquations.jl to isolate the problem. |
I tried bisecting this. It's a little tricky since it seems to have regressed in two steps, where BandedMatrices.ji went from 20MB to 80MB to 120MB. Unfortunately the culprit from bisecting is #23012. That was definitely a bugfix, which means the bug was an accidental optimization. Frankly, even 20MB is way too big for this package, so I suspect we're doing too much inference, and the bug caused us to skip saving a bunch of stuff that actually didn't matter. We end up spending lots of time in |
Pinging @dlfivefifty |
Commenting out |
But a package which has |
The issue is not the |
So I meant comment out the |
This is related to the unions of matrix types like |
I think |
reduce O(n^2) behavior of `jl_recache_types` these help #24383
reduce O(n^2) behavior of `jl_recache_types` these help #24383
reduce O(n^2) behavior of `jl_recache_types` improve soundness of inferred typevar bounds in subtyping these help #24383
reduce O(n^2) behavior of `jl_recache_types` improve soundness of inferred typevar bounds in subtyping these help #24383
reduce O(n^2) behavior of `jl_recache_types` improve soundness of inferred typevar bounds in subtyping these help #24383
Is here anything that can be done? I tracked down why
This is pretty long for such a core package like Is there any workaround? |
Switching back to Julia |
Can you try deleting your |
currently not since I changed to 0.6.0 and need that environment right now. I missed to cross-ref JuliaIO/FileIO.jl#156 |
Is this still an issue? Perhaps an update? |
under 0.6.3
so still way too slow. (if you were interested in 0.6.3 timing) |
Sorry for not being clear - is it an issue in 0.7-alpha too? Good to see that at least its better than the 25 seconds. |
Well can't really do 0.7 testing yet, because of the deprecation warnings. With all the deprecations being printed, I got 15 seconds on a fairly newish server. |
On the original issue posted here (BoundaryValueDiffEq), I got the whole thing in 0.6.3 in 64 seconds. I did a Pkg.add(), which brought in a bunch of dependent packages for the first time as well. I propose closing this and tracking compile-time regressions in a new/existing 0.7/1.0 related issue. |
From here: SciML/DifferentialEquations.jl#209
We see a >20 minute compile time regression, along with post-compilation
using
statements taking as long as precompilation used to take. @mauro3 noted that it may not occur on Linux though, but latest Travis tests seem to show that this regression is widespread.The text was updated successfully, but these errors were encountered: