On Sep 23, 2010, at 9:46 PM, John Clements wrote:

> 
> On Sep 23, 2010, at 8:16 PM, Matthew Flatt wrote:
> 
>> One more thought: Do you get to pick whether you use 16-bit integers or
>> 64-bit floating-point numbers? The `flvector-' and `f64vector-'
>> operations are inlined by the JIT and recognized for unboxing, so using
>> flonum vectors and operations could be much faster than using raw
>> pointers and 16-bit integers.
> 
> Well, that's an option, albeit a somewhat unappetizing one; as the 44100 in 
> my code no doubt signaled, I'm reading and writing sound data here, and both 
> 16-bit ints and 32-bit floats are fairly common. 64-bit floats will be 
> another factor of 2 in memory, for a total of 42 megabytes per minute.
> 
> I ran some tests, using flvectors and unsafe operations everywhere. (Code 
> below.)

Update before going to bed; re-running the C tests with doubles everywhere and 
the same setup (simply adding together two big buffers) took about half a 
second, so in fact in this instance Racket is less that 10x slower, which is as 
fast as I would expect it to be.  So basically, it sounds like the flvectors 
are the way to go, if I can stomach the memory usage.

Thanks again,

John

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to