Closed Bug 612250 Opened 12 years ago Closed 10 years ago


(Core :: SVG, defect)

Windows 7
Not set





(Reporter: jwatt, Unassigned)



(Keywords: perf, Whiteboard: [in-the-wild])

We seem to perform a lot worse than the current IE9 preview on The Killers HTML5 tour page:

On Windows 7 the dots animate much more smoothly in IE9 preview than in FF4b7.
I'm currently profiling this.
I'm having a bit of trouble on my Windows machine ATM, but on Mac, this is where the time seems to be going:

  41.6%   nsSVGOuterSVGFrame::Paint
  39.5%   nsSVGOuterSVGFrame::UpdateAndInvalidateCoveredRegion
  34.2%     nsIFrame::InvalidateInternal
   4.2%     nsSVGPathGeometryFrame::UpdateCoveredRegion

So we're spending as much time updating SVG elements' cached "invalidation areas" and invalidating as we are painting. The dominance of nsIFrame::InvalidateInternal over nsSVGPathGeometryFrame::UpdateCoveredRegion suggests that using roc's old display list vs new display list invalidation idea would help us here significantly.

I also noticed that along the nsIFrame::InvalidateInternal path, the stack is 125 frames deep at its deepest point, which seems a bit crazy.
> which seems a bit crazy.

Pretty much normal for that codepath, really...
Depends on: dlbi
A note about the animation: it's being done using setAttribute triggered of setInterval called every 50 ms, which, if we were keeping up, should give a much higher frame rate than I'm seeing.

For the setInterval look for the line:

  svg_event = document.getElementById('event_' + tour_group);

Component: Canvas: 2D → SVG
QA Contact: canvas.2d → general
Summary: Moz much worse on → Moz perf much worse on
Link is now dead, but last I checked I didn't notice any pref issues any more on a cursory look. (The only reason I didn't close it at the time is because I was going to take a deeper look at invalidation at some point.) Closing as fixed since I believe bug 614732 pretty much fixed this.
Closed: 10 years ago
Resolution: --- → FIXED
Whiteboard: [in-the-wild]
You need to log in before you can comment on or make changes to this bug.