-
-
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
Fix getindex inlining for Array{Union{T,Missing}} #27651
Conversation
Reference the wrong copy of `deprecate` relative to the `isdefined` check.
The `isknowntype` test should apply to the container (array) type, not to its eltype. Fix #27403.
I get slightly different numbers, in particular the
|
Yes, the particular run I posted was a bit extreme. The one I added to the blog post is more similar to yours. I have no idea why it changed. |
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
Some probably spurious regressions, lots of
|
Fixes #27403.
With this PR, a naive sum over non-missing values in a
Vector{Union{Int,Missing}}
is (probably) as fast as it could theoretically be. Masked SIMD instructions are used, which is almost too good to be true.I've added a test to check that
getindex
is inlined, but I'm really not sure that's the best way to do it. There are also benchmarks for this in BaseBenchmarks, and I'll add another one (EDIT: see JuliaCI/BaseBenchmarks.jl#207).