Henning Thielemann wrote: > Thank you for this benchmark! I'm particularly interested in > StorableVector because I hacked it quite a bit and use it for my own > signal processing. > > I would also like to know how Fusion+Inlining improves the picture, but I > do not know if there is anything to fuse at all in this simple example. > Can you show us the actual test you run? I would then compare with my > fusing signal data type from the synthesizer package.
yes, thanks john, very interesting ... i'd also be interested in the benchmarking code ;) >> hsndfile - a recursive I/O function reads a chunk from the file (using >> IOCArray type) and accumulates the maximum values from each chunk. I >> attempted to create a framework like used for HSoundFile-3, however >> performance dropped dramatically; I suspect the slowdown is mostly >> from the process of freezing mutable arrays to immutable arrays. for CArray i've been using unsafeFreezeIOCArray, which does an O(1) conversion (simply keeping the pointer to the mutable array). >> For chunked data types, all data is with chunk size 1000. >> All timing/memory data is the median value from multiple runs. In >> general different runs had very similar performance. >> >> Timing results: >> HSoundFile-3, StorableVector - real 16.5s >> HSoundFile-3, UArr - real 15.7s >> HSoundFile-3, List - real 17.6s > > Is this the plain Prelude [] type? Why are List and StorableVector similar > in speed? i'm curious about that one too ... <sk> _______________________________________________ haskell-art mailing list haskell-art@lurk.org http://lists.lurk.org/mailman/listinfo/haskell-art