Open the attached test case, which by default shows 60 lines of text and which the first line of text is updated continuously with a setTimeout(func, 0) call. There're 3 cases, where the DOM structures are all the same but having the first 2, 60, or 200 <tspan> visible. In the test cases all except the first <tspan> is static. Compare the frame rates of the 3 cases with the help of QuartzDebug. The more number of visible <tspan> we have, the slower the frame rate it is, even though we're changing only one of the <tspan> in all 3 cases. Enabling "Flash Screen Updates" in QuartzDebug suggests that the browser is repainting all <tspan> including those which haven't been changed.
Created attachment 64044 [details] Primary test case
<rdar://problem/8293628>