Closed
Description
openedon Jul 8, 2021
The following code allocates on master and 1.7beta2, but does not allocate on 1.6:
Tuple3(itr) = NTuple{3, Float64}(itr)::NTuple{3,Float64}
function doit(itr)
for x in itr
Tuple3(x)
end
end
itr = [randn(3) for _ in 1:10000]
doit(itr)
@time doit(itr)
master: 0.021418 seconds (120.00 k allocations: 2.899 MiB)
julia 1.6: 0.000032 seconds
This lead to regressions in two packages for me:
https://github.com/jw3126/VoxelRayTracers.jl/blob/master/src/core.jl#L71
https://github.com/jw3126/LinearInterpolations.jl/blob/master/src/LinearInterpolations.jl#L407
https://github.com/jw3126/LinearInterpolations.jl/blob/master/test/test_LinearInterpolations.jl#L259
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment