I can’t reproduce this kind of huge difference. Are you remembering to interpolate the global arguments with $
into the benchmark expressions? Also, it’s more reliable to report the minimum time than the median or the mean, since the noise is all positive. @btime
does the right thing:
julia> @btime test7!($D,$A,$B,$C);
1.440 ms (0 allocations: 0 bytes)
julia> @btime test8!($D,$A,$B,$C);
1.866 ms (1 allocation: 32 bytes)
Update: the above numbers were accidentally run with Julia 1.0.4. With 1.4 I get a big regression:
julia> @btime test7!($D,$A,$B,$C);
1.455 ms (0 allocations: 0 bytes)
julia> @btime test8!($D,$A,$B,$C);
2.926 ms (1 allocation: 32 bytes)
I reported an issue (50% performance regression in map! · Issue #35914 · JuliaLang/julia · GitHub).