NEW 181953
Split objects that have indexed properties from normal objects.
https://bugs.webkit.org/show_bug.cgi?id=181953
Summary Split objects that have indexed properties from normal objects.
Keith Miller
Reported 2018-01-22 14:36:20 PST
The current approach we have for handling indexed properties, index masking, works pretty well but it has a large perf cost. We think a large part of this cost is the extra allocation size for JSFinalObjects. Almost all JSFinalObjects don't have indexed properties. Thus, if we split the butterfly into two buffers where every object has named property storage (replacing butterfly) and all indexed objects have a second pointer containing indexed properties, we will save space on most objects. If a non-JSArray gets an indexed property later we can allocate an buffer object and put it in the named property storage.
Attachments
WIP (281.78 KB, patch)
2018-01-24 15:22 PST, Keith Miller
no flags
WIP (736.95 KB, patch)
2018-02-19 14:12 PST, Keith Miller
no flags
WIP more tests pass (780.27 KB, patch)
2018-03-12 12:09 PDT, Keith Miller
no flags
Patch (798.84 KB, patch)
2018-03-22 08:24 PDT, Keith Miller
no flags
WIP (798.88 KB, patch)
2018-03-26 02:03 PDT, Keith Miller
no flags
Keith Miller
Comment 1 2018-01-22 14:37:37 PST
Keith Miller
Comment 2 2018-01-24 15:22:05 PST
Keith Miller
Comment 3 2018-02-19 14:12:53 PST
Keith Miller
Comment 4 2018-03-12 12:09:55 PDT
Created attachment 335620 [details] WIP more tests pass
Keith Miller
Comment 5 2018-03-22 08:24:07 PDT
Keith Miller
Comment 6 2018-03-26 02:03:49 PDT
Note You need to log in before you can comment on or make changes to this bug.