-
Notifications
You must be signed in to change notification settings - Fork 13
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
16x slowdown for CondaPkg v0.2.23 on 1.11.0-rc3, and therefore JuliaCall much slower to start #145
Comments
FYI: This older version is actually much faster on 1.11:
and I was thinking, why downgraded, I think because I had been deving an old version before, no major(?) changes there. With that dev version (if it actually works...), NetworkOptions is prominent, so this could be even faster:
|
Note this is not just to blame for slow (in 1.11):
I think the differences are only explained by Julia versions, my 1.10 env is messy, some things held back, but I think none of the dependencies, i.e. I think all unrelated, such as: |
Thanks. The slowness in CondaPkg is entirely down to setting up the PkgREPL mode. Some things we could do:
Though note that PythonCall and JuliaCall both depend on Pkg so putting the code into an extension wouldn't help if you're using those. It's probably possible to remove these dependencies on Pkg though. |
Yes, only because of Pkg.REPLMode.gen_help(), and I know the/a fix, but I think it has to be in Julia 1.11 Pkg, so Snoopcompile will not help, at least for any of your packages. I think it would be best if PythonCall doesn't depend on CondaPkg, or only lazily loads it, and thus delays messing with Pkg.REPLMode. I'm not sure, most of the time the python/Conda environment is up to date, can't you just have a file saying when and only load CondaPkg, if any of the files change and thus are newer? This is I think sort of what you mean by the 3rd option, just not breaking? |
We can precompile |
CondaPkg adds new commands to the PkgREPL so we need to regenerate the help otherwise they don't show up in help. |
No, need rather here the root cause making Pkg slow: JuliaLang/julia#55706 |
What system did you get your timings on? On my Windows machine I don't observe a slow-down - loading CondaPkg takes about 20ms on 1.10 or 1.11-rc3 for me. However on nightly (1.12) I do get the slow-down (about 1300ms for me) but I'm not too fussed about nightly :) |
Fixes #55706 that is seemingly a 4472x regression, not just 16x (was my first guess, based on CondaPkg, also fixes or greatly mitigates JuliaPy/CondaPkg.jl#145), and large part of 3x regression for PythonCall. --------- Co-authored-by: Kristoffer Carlsson <[email protected]>
I use Linux with rc3, and except same slowdown on Windows. Note, you must not enter Pkg mode before timing, also if you use a script, not the REPL the timing is even worse. [My just merged PR for Markdown should help, for part of the latency, when it hits nightly, and I guess for rc4. But best to not depend on Pkg, as explained elsewhere, or at least my PythonCall.] |
Fixes #55706 that is seemingly a 4472x regression, not just 16x (was my first guess, based on CondaPkg, also fixes or greatly mitigates JuliaPy/CondaPkg.jl#145), and large part of 3x regression for PythonCall. --------- Co-authored-by: Kristoffer Carlsson <[email protected]> (cherry picked from commit 1463c99)
Fixes #55706 that is seemingly a 4472x regression, not just 16x (was my first guess, based on CondaPkg, also fixes or greatly mitigates JuliaPy/CondaPkg.jl#145), and large part of 3x regression for PythonCall. --------- Co-authored-by: Kristoffer Carlsson <[email protected]>
$ julia +1.11
I'm assuming all dependencies are the same, well except Julia. I think config files are the same (though didn't check) or small, since I just installed on 1.11.
It's in part because of Pkg (it's now 251x slower in 1.11, since it was intentionally dropped from the sysimage, so any way do avoid using it? Use lazily?), and Parsers, and can be mitigated with:
I could make a PR to enable either, since this package is hardly-speed critical, except for its startup?
The text was updated successfully, but these errors were encountered: