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 squirrelfish-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev