|
From: Dan I. <Da...@Sq...> - 2004-04-09 01:29:09
|
> > CompiledMethods >> A major question to decide is whether to split up bytecodes and literals (and source pointer) as in Tim's NewCompiledMethod work. This adds a little space overhead, but it certainly makes things simpler. I'm going to assume that we go with Tim's 2-object format, and throw in a "serendipity" field for fun this summer. >IIRC the difference is:- >header >bytecodes >literals >other ivars > >or >header >bytecodes >other ivars >indexed literals > >The difference is that to allow adding ivars in subclasses the second >option means the VM has to check the number of fixed fields so it can >find the literals correctly. So it's an extra object or an extra size >check on every send (well one could cache it in some limited >implementations but you lose subclassability). I'd go for the extra >object, personally. Not to choose sides yet, but I figured this offset would go in the method cache, where it's hardly significant added to the cost of setting up the base reg anyway. And I don't wee why "you lose subclassability". - D |