NEW122775
Consider doing a better job of sharing styles
https://bugs.webkit.org/show_bug.cgi?id=122775
Summary Consider doing a better job of sharing styles
Ryosuke Niwa
Reported 2013-10-14 13:57:00 PDT
The style sharing algorithm can be improved. e.g. Blink did https://chromium.googlesource.com/chromium/blink/+/ed002c01e93c3d9ee90fdf16d7461b149176c650 Replace style sharing cousin list search with LRU The current implementation of style sharing uses a very confusing set of methods to search a node's cousins in an attempt to find other nodes to share style with. This patch replaces this confusing method with a simple LRU that allows us to find nodes to share with even if they're not our cousins. The previous implementation of this was reverted due to a performance regression due to decreased sharing occurring in certain situations during parse time when we'd clear the LRU after every node was appended. This updated patch uses RefPtrs to allow these nodes to be held onto, and avoids clearing the LRU during attach, and only when styles change. Because this change introduces RefPtrs that can hold onto nodes while the style resolver is active, Internal gc functions are updated to clear the style sharing list.
Attachments
Note You need to log in before you can comment on or make changes to this bug.