On Mon, Oct 31, 2016 at 3:42 PM, Jesse Jaanila <jessejaan...@gmail.com> wrote:
> Hi,
>
> I was experimenting with the new 0.5 features and they are great! But to my
> surprise,
> the generator syntax doesn't work as I'm expecting. Let's say I want to
> calculate
> some summation. With the old syntax I could do
>
> @time sum([2*t for t in 1:2:100])
>   0.015104 seconds (13.80 k allocations: 660.366 KB)
>
> that allocates the array within the summation. Now I thought this would a
> prime example
> where the memory overhead could be decreased by using the new notation i.e.
>
> @time sum(2*t for t in 1:2:100)
>   0.019215 seconds (18.98 k allocations: 785.777 KB)
>
> ,but generator syntax performs slightly worse. Also if we want find the
> maximum we would do
>
> julia> @time maximum([2*t for t in 1:2:100])
>   0.015182 seconds (12.90 k allocations: 606.166 KB)
> 198
>
> julia> @time maximum(2*t for t in 1:2:100)
>   0.019935 seconds (18.74 k allocations: 772.180 KB)
> 198
>
> Have I understood the new generator syntax incorrectly or should the new
> syntax perform
> better in these code snippet examples?

Put it in a function since each syntactically different
generator/anonymous functions has their own type and you are
benchmarking the compiler only. It doesn't make sense for adding 50
numbers to take 15 ms.

>
>
>
>
>
>

Reply via email to