Because Julia is a just-in-time compiled language, the first time you run
something, it gets compiled immediately before running it.  Therefore, we
suggest you time the execution after "warming up" the JIT:

julia> fib(n) = n < 2 ? n : fib(n-1) + fib(n-2)
fib (generic function with 1 method)

julia> @time fib(20)
elapsed time: 0.003523425 seconds (47856 bytes allocated)
6765

julia> @time fib(20)
elapsed time: 0.000144034 seconds (96 bytes allocated)
6765

julia> @time fib(20)
elapsed time: 0.000143337 seconds (96 bytes allocated)
6765


Also note that the @time macro is doing the printing, so you don't need the
parentheses or the println() call for this.

On Thu, Sep 17, 2015 at 12:53 PM, Frank Kampas <[email protected]> wrote:

> On julialang.org, it is stated that Julia is about 170 times faster than
> Mathematica for the the test "fib".  I get about a factor 2.
>
> Julia:
>
> fib(n) = n < 2 ? n : fib(n-1) + fib(n-2)
> println(@time(fib(20)))
>
> elapsed time: 0.001868071 seconds (33280 bytes allocated)
> 6765
>
>
> Mathematica:
>
>
> In[1]:= AbsoluteTiming[fib = 
> Compile[{{n,_Integer}},If[n<2,n,fib[n-1]+fib[n-2]]]]
> Out[1]= {0.000134563,CompiledFunction[Argument count: 1
> Argument types: {_Integer}]}
>
>
>
> In[2]:= AbsoluteTiming[fib[20]]
> Out[2]= {0.00385017,6765}
>
>
>
>
>

Reply via email to