At 6:46 PM +0100 3/17/04, Leopold Toetsch wrote:
Dan Sugalski <[EMAIL PROTECTED]> wrote:
 Okay, as I see it there are two big things that we can do to speed
 objects up. (Well, besides speeding up the creation of continuation
 PMCs, which I am, at the moment, sorely tempted to put in a special
 pool for fast allocation)

I though about that already. Returncontinuations created via the *cc opcode variants are created in the opcode and used exactly once just for returning from the sub. So I'd do for these a per-interpreter freelist, where they get put back after invokeing the return contination.

Unless something inside the call's taken a continuation, in which case they're still valid and may be reused. Can't do that, unfortunately. :(


I was thinking of a special PMC arena for continuations that already had the full data chunk tacked on the end of the struct and the various PMC pointers-to-data filled in.

> 1) A method cache. Which we need anyway, so this isn't any surprise

2) Pre-figuring the delegated vtable functions.

 At the moment I'm considering two storage schemes for the PMC
 pointers (one hanging off the vtable itself, another in the class
 attributes) but I'm open to suggestions here.

Or: after the 1st delegate lookup create a JITed stub

Which is swell, except for that pesky can't-guarantee-a-JIT thing... :) -- Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to