Bug 34649

Summary: Extremely slow DOM access compared to other non-webkit browsers
Product: WebKit Reporter: Andrew Gryaznov <realgrandrew>
Component: TablesAssignee: Nobody <webkit-unassigned>
Severity: Normal CC: ap, chad, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
URL: http://blog.jeneric.net/2010/02/05/ie8-beats-chrome-safari-in-performance-tests/
Description Flags
Blog post with regression source and more info
test case none

Description Andrew Gryaznov 2010-02-05 07:06:16 PST
Created attachment 48232 [details]
Blog post with regression source and more info

access speed regresses over the size of the DOM table tree, It is down to 20x or 
more times slower than in every other modern browser, including Internet Explorer. 
It makes some DOM tricks unusable in WebKit completely
Comment 1 Andrew Gryaznov 2010-02-05 07:07:14 PST
Created attachment 48233 [details]
test case

the test case html
Comment 2 Mark Rowe (bdash) 2010-02-05 14:10:08 PST
I don’t think this is a DOM issue as much as a repainting issue.  Profiling shows a large amount of time is spent repainting tables.  QuartzDebug doesn’t appear to show any unnecessary repainting though.
Comment 3 Chad von Nau 2011-08-13 02:37:50 PDT
I'm seeing the same problem.

I've made some examples. These examples are the same content with different styling:

1) Normal scrolling. Solid borders and border-collapse:separate


2) Slow scrolling. Solid borders and border-collapse:collapse


3) Very slow scrolling and beach ball of death.
   Semi-transparent RGBA borders and border-collapse:separate


I'm testing with Safari 5.1 and OS X 10.6.8 (+update) on my Late 2006 MacBook Pro.

Firefox 4 sees roughly equal performance on on all of those examples.
Safari 5.0 and earlier sees about the same performance on each example.
Chrome 13.0.7 has similar performance issues with these examples.

Here is another page that exhibits performance problems because of border-collapse:collapse


This is the same bug on Google's bug tracker:

Comment 4 Chad von Nau 2011-08-13 02:40:34 PDT
*** Bug 66184 has been marked as a duplicate of this bug. ***
Comment 5 Simon Fraser (smfr) 2011-08-13 07:55:36 PDT
This bug is about DOM access performance, not scrolling performance. Please file another bug on the latter.
Comment 6 Chad von Nau 2015-03-24 00:56:22 PDT
I just revisited this today and both Andrew's original DOM access issue, and my scrolling issue (Comment #3) appear to be resolved in Safari 8. On my machine, I'm getting over 60FPS on Andrew's demo, and the scrolling examples I linked are as smooth as can be.

I put Andrew's demo on Codepen for ease of testing: http://codepen.io/cvn/full/vEbKJz/

I think this can be closed.
Comment 7 Alexey Proskuryakov 2015-03-24 09:50:40 PDT
Thank you, looks good to me in Safari 7.1.4 too.