-
-
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
compile time of using ApproxFun
is almost 10x slower
#21173
Comments
Could be related to #20793 (comment) |
Adding to milestone as a reminder to try to address compile time regressions before 0.6.0. If |
This can also be seen with OpenCL master between 0.5 and 0.6:
The 10x explosion in allocations between 0.5 and 0.6 is absolutely stellar as well (as can be seen above). |
using ApproxFun
is almost 10x slowerusing ApproxFun
is almost 10x slower
It looks like this one is almost entirely due to the type system (specifically |
Any sense of where those calls are coming from? |
Update: this is time spent inserting methods, which tests specificity and computes intersections to check for ambiguities. |
ApproxFuns always shakes out some interesting bugs in every Julia Release. We should make its test and perf suites mandatory for every release. :-) |
Probably the quality of the code would need to be improved for that... but I suppose if the quality of the code was improved, it wouldn't be triggering so many bugs 😉 |
add `obviously_disjoint` fast path to type_morespecific further helps #21173
speed up ambiguous method checking and intersection; helps #21173
The time should now be within a factor of 2 of the time on 0.5. |
Using Julia master pulled about 15 minutes ago, OpenCL master loads in 4.48 seconds, while Julia 0.5.1-pre+2 loads it in 2.69 seconds. 😄 |
We will try to keep improving this, but it doesn't need to block the release any more. |
Yes I'm also seeing it now only 2x slower, thank! Should we close this issue, or rename it "compile time of |
I'm seeing a big slowdown in Images. If you first say julia> run(`touch $(Pkg.dir("Images","src","Images.jl"))`)
julia> @elapsed using Images
INFO: Recompiling stale cache file /home/tim/.julia/lib/v0.6/Images.ji for module Images.
37.379356289 whereas on 0.5 it's around 8 seconds. |
Some results from my own packages (results in seconds): Tensors.jlv0.5Precompile: 1.75 v0.6Precompile: 5.2 JuAFEM.jlv0.5:Precompile: 2.20 v0.6Precompile 6.14 Tokenize.jlv0.5:Precompile: 1.5 v0.6:Precompile: 1.3 NearestNeighbors.jl:v0.5Precompile: 1.18 v0.6:Precompile: 2.62 |
I've boiled down at least a part of the Images problem: julia> @time using CoordinateTransformations
0.801925 seconds (915.97 k allocations: 49.765 MiB, 1.63% gc time) Then hit a key, TAB, and another key. Watch how long it takes the second key to appear (presumably #265-related?). Interestingly, julia> @time using Compat, Rotations, StaticArrays
0.338590 seconds (574.33 k allocations: 32.500 MiB, 2.29% gc time) (the three other modules loaded by CoordinateTransformations) does not trigger this problem. I'm on the 0.4.1 release of CoordinateTransformations, in case it matters. |
Perhaps more of #20780 going on? |
Continued in #21449 |
Don't think we need two ApproxFun compilation time issues: #28823. |
using ApproxFun
is significantly slower in 0.6. This is with ApproxFun 0.6, which has already been precompiled in both cases:See also discourse discussion: https://discourse.julialang.org/t/is-compile-time-significantly-slower-in-0-6/2764
The text was updated successfully, but these errors were encountered: