http://docs.julialang.org/en/release-0.3/manual/performance-tips/
On Wed, Sep 10, 2014 at 11:55 AM, Jimmie Houchin <[email protected]> wrote: > Hello, > > I am working on an app which will be doing analysis on a lot of numerical > data. Julia seems perfect for the job. However I wanted to do a simple test > that I have run on a few languages to see where I wanted to land. > > Yes, I understand benchmarks, micro-benchmarks are evil. But I needed to > see a little on how the languages performed in cpu, time and memory. > > Basically I have two almost identical test differing only in how large the > array is that I am operating over. One is 100million items, the other > 7.2million items. The reason for the two test is I am expecting at the > start the 7.2m to be more normative, but I want to test towards some upper > bounds. Some languages I can't do the 100m because the reach memory > constraints. > > The array is simply populated with doubles or Float64 in Julia's case. > > In the test I iterate over the array, do some calculations assign back > into the array. The calculations are simple calculations which can be > reasonably consistent across languages. I do this iteration over the array > 100 times. > > Hardware, Laptop, 3rd Gen, i7, 12GB Ram > Lubuntu 14.10, running Openbox only, not Lubuntu DE > > Julia -- Version 0.3.1-pre+4720 > > a = Array(Float64, 7200000) > > # populate array with some data > for i = 1:length(a) > n = i * 0.99999 > if n>100 > n-=(n-n/100.0) > end > a[i]= n*n*n > end > > println("$(a[1]), $(a[end])") > > for i = 1:100 > t=time() > for j = 1:length(a) > n = a[j] * 0.99999 + (a[j]+1.0) / 0.9999999 > n*=0.99999 > n*=0.99999 > n*=0.99999 > n/=0.9999999 > n/=0.9999999 > n/=0.9999999 > if n>100 > n-=(n-n/100.0) > end > a[j]= n > end > println("loop number $i $(a[1]), $(a[end]), $(time()-t)") > end > > With an array of 7.2m the test times are: > C++11 gcc4.9 18.5 seconds, 58.6mb ram > Java openjdk7 18.8 seconds, 77.5mb ram > Julia 0.3.1 675 seconds, 156mb ram > Luajit 5.1 22.3 seconds, 67mb ram > > I didn't necessarily expect Julia to match or beat C++. But I did hope it > would be more comparable. > > Am I doing something wrong? Is my code not good Julia or idiomatic Julia. > Or is this simply where Julia is at this point in time? > > Any help, understanding or wisdom greatly appreciated. > > Thanks. > > Jimmie > >
