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

Reply via email to