On Wed 2008-03-26 19:50, Bulat Ziganshin wrote:
> Hello Jed,
> 
> Wednesday, March 26, 2008, 7:02:28 PM, you wrote:
> 
> > StorableArray.  Unfortunately there is a performance hit to using Storable
> > versus the built in unboxed types.
> 
> are you sure? it was in ghc 6.4, now afair they should be the same.
> look in http://haskell.org/haskellwiki/Modern_array_libraries

The comparison I'm referring to is a micro-benchmark taken from the shootout.  I
modified the nsieve-bits code here:

http://shootout.alioth.debian.org/gp4/benchmark.php?test=nsievebits&lang=ghc&id=0

The shootout code uses STUArray, one modification uses IOCArray, another uses
StorableArray (which should be equivalent to IOCArray).  Here are some timing
results with ghc-6.8.2 on x86_64.

  $ for e in nsU nsC nsS; do time ./$e 12 > /dev/null; done
  1.087 real   1.087 user   0.000 sys   99.96 cpu
  3.454 real   3.326 user   0.127 sys   99.98 cpu
  3.448 real   3.343 user   0.103 sys   99.94 cpu

With ghc-6.8.2 on x86, I get

  $ for e in nsU nsC nsS; do time ./$e 12 > /dev/null; done
  ./nsU 12        4.57 real  4.45 user  0.01 sys
  ./nsC 12        10.46 real  9.88 user  0.27 sys
  ./nsS 12        10.59 real  9.86 user  0.24 sys

That is, the STUArray version (nsU) is much faster than IOCArray (nsC) and
StorableArray (nsS) for this test.  To see for yourself, checkout CArray

  darcs get http://code.haskell.org/carray

build it, then see the script in tests/runtests.sh.  It will build an run these
benchmarks, confirming that the output is the same and providing timing
information.

I would love to see this discrepancy go away, but sadly, it is not there yet.

Jed

Attachment: pgprbNe5PRMWN.pgp
Description: PGP signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to