Move popular DOM attributes to prototype chains
Design document: https://docs.google.com/a/google.com/document/d/1yeHTCHhulVIlrKyx9_gCguAhLfcefVOa9uxxfW2LVG0/edit Intent-to-ship-and-implement in blink-dev: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/t0XiZuMey7M/9-5AuhoFyisJ This CL moves DOM attributes used in Dromaeo to prototype chains. When I landed the CL two months ago (https://codereview.chromium.org/94403002), it caused 20+% regression in benchmarks. However, now that a V8 side fix is landed, there should be no overhead in moving DOM attributes to prototype chains in theory. Dromaeo/dom-attr 1086 runs/sec => 1077 runs/sec (-0.8%) Dromaeo/dom-modify 522 runs/sec => 525 runs/sec (+0.5%) Dromaeo/dom-query 26150 runs/sec => 26200 runs/sec (+0.2%) Dromaeo/dom-traverse 564 runs/sec => 544 runs/sec (-3.6%) I don't understand the regression in dom-traverse. The regression is reproducible but I cannot reproduce the regression in a super-micro benchmark that just repeats accessing div.firstChild. Probably the regression might be a noise. I'm going to land this CL and see how much regression is observed in perf bots (I'll email to perf-sheriff@). If I find the regression is unacceptable, I'll revert the CL. See the design document and the Intent-to-ship email for justification for the regression. BUG=43394 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167680 R=jochen@chromium.org Review URL: https://codereview.chromium.org/158713002 git-svn-id: svn://svn.chromium.org/blink/trunk@168383 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Showing
Please register or sign in to comment