Open Bug 454254 Opened 17 years ago Updated 3 years ago

dhtml benchmark on trunk 2.5x slower than latest webkit r36247

Categories

(Core :: Layout, defect)

x86
Linux
defect

Tracking

()

People

(Reporter: romaxa, Unassigned)

References

()

Details

Attachments

(2 files)

URL running on latest central show only "dot count: 10" The same test with webkit reference browser has "dot count: 20" (sometime 25) I'm not sure is it right component for this bug... Also with this test gecko a bit slower than webkit. http://wd-testnet.world-direct.at/mozilla/dhtml/funo/dhtmltest1to10ms.htm 3900 - webkit 4500 - gecko
Can you do some profiling of the dot testcase?
Cpu usage: 89.4% TestGtkEmbed 6.6% Xomap
Ugh; useful profile, but we really need to figure out a way to do callgraph profiling -- that flat profile doesn't really help us figure out what the large chunks are that are going on. This might be reproducible on a desktop linux machine, where it could be run with Xfbdev or Xvfb, which should have similar perf characteristics as Xomap.
I don't think that Xomap very big problem for this testcase.... because on windows, and linux desktop it is also slower than webkit nightly build... Should we use jprof for it? I can also generate cycle profile with oprofile.
I have removed all drawing and it still slow: -li.appendChild(document.createTextNode('\u25cf')); +li.appendChild(document.createTextNode('')); 10 dots - mozilla 30 dots - webkit Seems problem not in Xomap at all,
If you can do a jprof, that would be great. I just did a shark profile on Mac, and there seem to be no obvious unknown hotspots: JS execution (no jit across DOM yet), reflow, painting, style reresolution, CSS top/left setting. I'm curious to see what your jprof will show.
I'm on Windows XP. Just tested the benchmark in the URL field. When dot count is 10: Latest build (Gecko/20110113 Firefox/4.0b10pre) - D3D9 ON ~ 50fps Latest build (Gecko/20110113 Firefox/4.0b10pre) - D3D9 OFF ~ 40fps Google Chrome 8.0.552.237 ~ 38fps IE8 ~ 61fps I have a FX5500 card. Don't know if it matters.
I don't know when it happened, but Firefox now (latest Nightly) is waaaaaaaaay faster. 180+ fps! This bug can be closed.
The frame rate at 10 dots is basically bogus on modern hardware; it's just measuring your timer clamp, not anything related to performance. The interesting number with this test is how many dots it takes before you bottom out at 25fps... For me, Chrome dev gets to well over 2x the number of dots we get to. So I think this bug is alive and well.
I just redid a profile... 40% of the time is painting, 2/3 of it text painting (all those balls are U+25CF characters). Lots of textrun rebuilding for some reason. 12% Setting inline style. 4% JS execution 12% reflow. 2/3 of this time is invalidation. 28% restyling Under restyling, 25% (so almost all of the restyle time) is ReResolveStyleContext, breaking down as: 10% CalcStyleDifference computing all sorts of style structs on the new context 3% style context allocation (largely the GetStyleDisplay in ApplyStyleFixups). 3% actual rule matching 4% ~nsStyleContext (half is ruletree gc, and the rest is deallocation and the like) then a long tail.
Depends on: dlbi
DLBI or something else regressed this benchmark. Firefox 17 gets 25fps with 285 dots. Nightly (20121023) hits 25fps with only 165 dots. I'm on Win7 with d2d and d3d10. (Intel HD3000)
This benchmark was recently brought up in http://forums.mozillazine.org/viewtopic.php?f=23&t=2775635 (though using the URL http://opera.r3m.co/tests/dhtml/test1.html, it seems to be the same test). Firefox Nightly (~50fps for 200 balls) does much worse on this test than Chrome Canary (170fps for or Internet Explorer 11. It's been a long time since this was last profiled, so how are things looking here now?
Hmm, I posted an unfinished version of my comment. The second part was supposed to be: Firefox Nightly (~50fps for 200 balls) does much worse on this test than Chrome Canary (~170fps for 200 balls) or Internet Explorer 11 (~170fps for 200 balls). It's been a long time since this was last profiled, so how are things looking here now? FWIW, I tested on 64-bit Windows 7 with 32-bit Firefox, with D2D HWA enabled.
I can't tell you what it looks like on Windows, but I expect graphics to be a good part of it, because on Mac I see us ending up at 70fps for 200 balls and on the same hardware Chrome is at only 100fps for 200 balls. So either Chrome is slower than on Windows or we're faster or both. With that caveat, the profile on Mac looks like this: * A bunch of time on the compositor thread (nearly half the CPU time). Not sure whether the main thread ends up blocking on the compositor here. Most of this is ContentHostIncremental::Composite, drawing quads and the like. If I focus on the main thread, I see: 15% setting inline style 43% painting (10% painting text, lots of layer building, etc, etc). 36% restyle processing. Pretty similar to comment 11, in fact.
Current dot-count for 25fps, done on a Intel Core i5 ULV: Nightly 2014-04-14: 50 Nightly 2014-04-14 OMTC on: 50 Nightly 2014-04-14 e10s: ~60 IE11: ~150 Chrome 34: ~300

Is this still valid? Nightly seems faster than Chromium (Linux) in this test-case on my machine (with WR enabled and such though).

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: