[Haskell-cafe] Haskell vs Clean (speed comparison)

Daniel Carrera daniel.carrera at theingots.org
Sun May 3 14:24:52 EDT 2009


Hi,

I think the mail server may have been acting up earlier. I sent this to 
Haskell-beginners, but it more properly belongs here.

I found something interesting. "General wisdom" is that Clean (or OCaml) 
is faster than Haskell. The claim is often followed by a link to the 
Debian shootout. But on closer inspection, I question this conclusion. 
The Debian shoot out actually has four sets of benchmarks:

1) Intel 32-bit one core.
2) Intel 32-bit quad-core.
3) Intel 64-bit one core.
4) Intel 64-bit quad-core.

It turns out that Clean is only faster for (1). For the others, Haskell 
is faster. Here I compare Haskell, Clean, OCaml, Lisp SBCL, C# Mono and 
Fortran because they are all in the same ball mark:

32-bit sing core [1]: Lisp, Fortran, Clean, Haskell, C# Mono.
32-bit quad-core [2]: Haskell, C# Mono, Lisp, Clean, Fortran.
64-bit sing core [3]: Fortran, OCaml, Haskell, Clean, C# Mono, Lisp.
64-bit quad-core [4]: Haskell, OCaml, Lisp, C# Mono, Fortran, Clean.

Notes:

* The order is "fast language first".
* There are no results for OCaml for 32-bit.
* "Lisp" is "List SCBL" whatever that is.

Tentative conclusions:

1) Haskell makes very good use of multiple cores. It smokes Clean.
2) For single core, they are neck and neck. Whether Clean is faster 
depends non the architecture.


What do you think?

Daniel.

P.S.
[1]http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=all&d=data&ghc=on&ocaml=on&sbcl=on&csharp=on&ifc=on&clean=on&calc=calculate&box=1
[2]http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=all&d=data&ghc=on&ocaml=on&sbcl=on&csharp=on&ifc=on&clean=on&calc=calculate&box=1
[3]http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=all&d=data&ghc=on&ocaml=on&sbcl=on&csharp=on&ifc=on&clean=on&calc=calculate&box=1
[4]http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=all&d=data&ghc=on&ocaml=on&sbcl=on&csharp=on&ifc=on&clean=on&calc=calculate&box=1



More information about the Haskell-Cafe mailing list