On Thursday, September 18, 2014 2:31:14 PM UTC-5, Johan Sigfrids wrote:
>
> So I was looking at allocations in some code and I noticed I sped things
> up significantly by changing map to a list comprehension. Doing some
> microbenchmarking I noticed that map allocates far more memory than a list
> comprehension. Shouldn't they essentially be doing the same thing?
>
map() is a generic function call, and doesn't specialize on parameter
values. The list comprehension is special syntax. The following should be
instructive:
code_llvm(f1, (Array{Float64, 1},))
vs.
code_llvm(f2, (Array{Float64, 1},))
Making map() fast is one of the nearish-term goals. The latest discussion
on map-related topics starts here:
https://github.com/JuliaLang/julia/issues/8389#issuecomment-55930448