-
Notifications
You must be signed in to change notification settings - Fork 370
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
precompilation for 1.4 release #3182
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a much simpler way of handling precompilation!
How much does this add to the loading time compared with not precompiling anything?
src/other/precompile.jl
Outdated
subset(df, :q) | ||
@view df[1:3, :] | ||
@view df[:, 1:2] | ||
select!(df, :c, [:c :f] .=> [sum, mean, std], :c => :d, [:a, :c] => cor) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why select!
and not select
nor transform!
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
transform
was called above, and it calls select
internally. I could use transform!
- it should not be that different. I will change it.
No precompilationFirst call
Next calls
With precompilationFirst call
Next calls
|
@nalimilan - I have also checked that adding additional statements in precompilation code does not add much in the first load time but indeed improves things later. |
@nalimilan - given no suggestions I would merge this. We can always change the precompiled method list since it is non-breaking. |
Thank you! |
Fixes #3080
Comparison of timing is below. The conclusion (pretty obvious is) that what we precompile is faster, what we do not precompile is comparable or slower (note that in DataFrames.jl 1.3.6 we also did precompilation but using a different mechanism).
So:
Conclusion: we need to think carefully about the list of things we put for precompilation. Please comment what you thing we should put there.
I have chosen operations that are not included in precompilation statements for 1.4 release:
DataFrames.jl 1.3.6
DataFrames.jl
main
I have chosen operations included in precompilation statements for 1.4 release
DataFrames.jl 1.3.6
DataFrames.jl
main