Hi!

I picked this up again, as I was doing some work in this area and this
patch would have been helpful.

The reason ScopeNodeData is a currently separate object is because
embedded function and eval code is parsed lazily, so the initial scan
doesn't need to allocate space for the captured identifiers set, or the
varstack, or the functionstack -- or, notably, for a new parsing arena.

Changing the ParserArena to allocate its IdentifierArena lazily fixes
the performance regression introduced by moving ScopeNodeData into
ScopeNode.  I'll open a bug for that.

Andy

On Wed, 2012-01-18 at 11:14 -0800, Geoffrey Garen wrote:
> Hi Andy.
> 
> I don't see any obvious reason why this patch would be a regression. It's not 
> clear to me why ScopeNodeData is a separate object.
> 
> Geoff
> 
> On Jan 18, 2012, at 9:47 AM, Andy Wingo wrote:
> 
> > Hello list!
> > 
> > I was poking about the parser recently and thought I could clean up some
> > of the shenanigans there.  I came up with the attached patch, which
> > seems to slow down sunspider by about half a percent.
> > 
> > My question is, why is this?  It would seem to be easier on the
> > allocator to make one object than two.  Is WTF_MAKE_FAST_ALLOCATED
> > really so powerful that it's worth splitting objects into multiple
> > pieces?
> > 
> > Just wondering :)
> > 
> > Cheers,
> > 
> > Andy
> > 
> > 
> > <diff>_______________________________________________
> > squirrelfish-dev mailing list
> > [email protected]
> > http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev
> 

_______________________________________________
squirrelfish-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev

Reply via email to