Bug 241542

Summary: Improve event handling speed for nodes by moving refcount and flags from Node to EventTarget
Product: WebKit Reporter: Darin Adler <darin>
Component: DOMAssignee: Darin Adler <darin>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: cdumez, heycam, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Darin Adler 2022-06-12 14:40:30 PDT
Cameron and Chris have been discussing and experimenting with this, and now I have a specific proposal I want to try.

We’ll move the NodeFlags and node reference count from Node to EventTarget, and also make many EventTarget functions handle things without a virtual function call, at least when the target is a node, most importantly ref and deref.
Comment 1 Cameron McCormack (:heycam) 2022-06-12 14:59:22 PDT
I had a patch that does pretty much that, but then it didn't help with the benchmark I was targeting (Speedometer).
Comment 2 Cameron McCormack (:heycam) 2022-06-12 15:06:46 PDT
I've just attached the most recent patch I tried to bug 238654.  As I say, it didn't help when I tested it against Speedometer.  Which surprised me, but maybe the compiler/linker is able to devirtualize, or the virtual calls are less expensive than I imagined.
Comment 3 Radar WebKit Bug Importer 2022-06-12 15:07:15 PDT
<rdar://problem/94956595>
Comment 4 Darin Adler 2022-06-12 15:46:23 PDT
I probably should have used the bug you already had.
Comment 5 Darin Adler 2022-06-12 15:46:38 PDT
But I am still optimistic this will work!
Comment 6 Darin Adler 2022-06-12 16:04:44 PDT

*** This bug has been marked as a duplicate of bug 238654 ***