Browse thread
Memory allocation nano-benchmark.
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | skaller <skaller@u...> |
| Subject: | Re: [Caml-list] Memory allocation nano-benchmark. |
On Fri, 2005-02-11 at 20:22, Frédéric Gava wrote:
>
> You could write;
> for i=0 to tablesize -1 do
> let row1 = table.(i) in
> for j=0 to tablesize -1 do
> let row2 = row1.(j) do
> for k=0 to tablesize -1 do
> row2.(k) <- (i+1)*(j+1)*(k+1)
> done done done
>
> and peraps you will have a faster code.
I found no difference, here are two runs:
[skaller@pelican] ~>time ./zmem 250
real 0m3.110s
user 0m2.820s
sys 0m0.240s
[skaller@pelican] ~>time ./zmem 250
real 0m27.732s
user 0m2.750s
sys 0m0.340s
The huge 'real' time there is VM paging.
Perhaps Xavier will bless us with a comment as to
whether invariant code motion optimisation is actually
done in
table.(i).(j).(k) <- (i+1)*(j+1)*(k+1)
Using bigarray (c_layout):
real 0m27.948s
user 0m0.770s
sys 0m0.500s
.. 4 times faster.
--
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850,
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net