-
Notifications
You must be signed in to change notification settings - Fork 1
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
Why using Makie; lines(rand(5));
using sysimage generated from precompiles is about 5 times slower than compile_incremental(:Makie, :AbstractPlotting)
?
#4
Comments
If I remember correctly you have blacklisted “AbstractPlotting” , maybe whitelist it and try again? Fezzik is not meant to be optimal. It’s purpose is to be extremely simple to use and to allow you to actually use Julia and the eco-system of it without suffering too much from time to first ..you know. |
I have no packages blacklisted, with modified gf.c and codegen.c segfaults are gone during sysimages generation of Makie, Blink and Interact. It is interesting why such difference could appear, is seems that some functions are still compiled JIT. I am interested in technical side. |
Ok I see, my theory is that some function goes "stale" when you add other functions to the global method table...(related maybe to the assertions?) and so they need to be recompiled again. For my use case, I build a sysimg 10-15 times (working in one window and building in the other) you should check out also the precomp.jl file and the traces directory to see which functions are being compiled |
Makie.lines(rand(5));
is about 5 times slower after brute_build_julia()
than PackageCompiler.compile_incremental(:Makie, :AbstractPlotting)
?using Makie; lines(rand(5));
is about 5 times slower than compile_incremental(:Makie, :AbstractPlotting)
?
using Makie; lines(rand(5));
is about 5 times slower than compile_incremental(:Makie, :AbstractPlotting)
?using Makie; lines(rand(5));
using sysimage generated from precompiles is about 5 times slower than compile_incremental(:Makie, :AbstractPlotting)
?
I tried with and without assertions, same result (speedup is notable but still lesser).
Also, I tied run julia with --trace-compile flag (as mentioned in https://nextjournal.com/sdanisch/packagecompiler-talk) and replace Fezzik traces file with generated precompile file and I got same results as using Fezzik alone. |
Found one difference in how PackageCompiler generates precompiles from snooping, it's Perhaps that could be cause. |
try with the newest version of Fezzik, see if it is resolved |
Thanks for update, but after compiling sysimage I also posted here: https://discourse.julialang.org/t/why-using-makie-lines-rand-5-using-sysimage-generated-from-precompiles-is-about-5-times-slower-than-compile-incremental-makie-abstractplotting/27808 Only few errors (but I don't think that this could effect Makie):
|
Maybe this could fix this JuliaLang/julia#33006 |
We will see when it is merged |
@KestutisMa do you have any update on this? |
Makie.lines(rand(5));
is about 5 times slower afterbrute_build_julia()
thanPackageCompiler.compile_incremental(:Makie, :AbstractPlotting)
. Buts = Scene()
is fast.Why could be that?
Maybe something is not precompiled when calling Makie.lines()?
The text was updated successfully, but these errors were encountered: