[racket-dev] TR performance (was: Re: [plt] Push #27909: master branch updated)

From: Sam Tobin-Hochstadt (samth at cs.indiana.edu)
Date: Wed Dec 11 19:42:46 EST 2013

On Wed, Dec 11, 2013 at 7:25 PM, John Clements
<clements at brinckerhoff.org> wrote:
>
> Wow! I had no idea TR was that fast.

In fairness, much of this is that Racket is that fast -- Matthew's put
a lot of work into the JIT over the last few years.

> Related question: how hard is it to reason about the GC behavior of TR code? These numbers suggest to me that it might be possible to write TR code that could be pretty much guaranteed not to collect, and therefore potentially appropriate for use in audio callback functions, where the #1 rule is: NO GC PAUSES.

First, contracts allocate (less after Robby's changes, but still), so
typed/untyped boundaries are bad for GC.

Second, TR doesn't change GC or allocation behavior except if you're
using floating point or complex numbers (where it reduces allocation).
 So you can reason about it similarly to how you'd reason about
untyped Racket code.

Sam


Posted on the dev mailing list.