Browse thread
[Caml-list] matrix-matrix multiply - O'Caml is 6 times slower than C
[
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: | Issac Trotts <ijtrotts@u...> |
| Subject: | Re: [Caml-list] matrix-matrix multiply - O'Caml is 6 times slower than C |
> I don't see how to do strength-reduction without introducing references,
> which appears to reduce performance more than is gained.
You might try converting your references to mutable fields.
Here's an example of the performance gain:
% cat ref.ml
let x = ref 1.0 in
let n = int_of_string Sys.argv.(1) in
for i = 1 to n do x := !x +. 1.0 done
% cat ref2.ml
type t = { mutable f:float };;
let x = { f = 1.0 } in
let n = int_of_string Sys.argv.(1) in
for i = 1 to n do x.f <- x.f +. 1.0 done
% ocamlopt -o ref{,.ml}
% ocamlopt -o ref2{,.ml}
% time ./ref 100000000
./ref 100000000 2.51s user 0.00s system 99% cpu 2.515 total
% time ./ref2 100000000
./ref2 100000000 1.54s user 0.01s system 100% cpu 1.542 total
The standard references take 1.6 times as much cpu time in this
case.
Issac
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners