Closed Bug 754604 Opened 12 years ago Closed 1 year ago

Performance regression with many open tabs.

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: gwagner, Unassigned)

Details

(Keywords: perf, regression, Whiteboard: [js:inv:p1])

I was rerunning my benchmarks that load 150 tabs, wait until all tabs are loaded, and run the v8 benchmark suite afterwards. We used to get a score that was 5-10% lower than a browser with a single open tab.

Now the situation looks very different. 
On nightly with a single open tab I get:
Score: 6326
Richards: 8194
DeltaBlue: 6579
Crypto: 12554
RayTrace: 3211
EarleyBoyer: 7055
RegExp: 1546
Splay: 8537
NavierStokes: 12686


With 150 other open tabs I get:
Score: 953
Richards: 7406
DeltaBlue: 256
Crypto: 11136
RayTrace: 2980
EarleyBoyer: 867
RegExp: 36.5
Splay: 28.1
NavierStokes: 12232


This is with IGC enabled but I don't see a big difference when I disable it.
I remember that a GC with so many open tabs during v8 was around 20msec and for splay it was around 200ms for a single-compartment GC. 
Now I see during splay:
        GC(T+409.2) Total Time: 1775.2ms, Compartments Collected: 1303, Total Compartments: 1303, MMU (20ms): 0%, MMU (50ms): 0%, Max Pause: 1278.5ms, Nonincremental Reason: requested, Allocated: 664MB, +Chunks: 22, -Chunks: 1
            Slice: 0, Pause: 81.8 (When: 81.8ms, Reason: PAGE_HIDE): Begin Callback: 0.2ms, Purge: 6.3ms, Mark: 54.9ms, Mark Roots: 44.9ms, Discard Code: 17.9ms
            Slice: 1, Pause: 91.8 (When: 810.3ms, Reason: INTER_SLICE_GC, Reset: compartment change): Purge: 0.6ms, Mark: 73.6ms, Mark Roots: 63.3ms, Discard Code: 13.7ms
            Slice: 2, Pause: 17.4 (When: 1404.3ms, Reason: REFRESH_FRAME): Mark: 16.0ms
            Slice: 14, Pause: 12.0 (When: 4746.6ms, Reason: REFRESH_FRAME): Mark: 10.4ms
            Slice: 15, Pause: 95.1 (When: 5123.2ms, Reason: INTER_SLICE_GC, Reset: compartment change): Purge: 2.7ms, Mark: 70.0ms, Mark Roots: 59.8ms, Discard Code: 17.5ms
            Slice: 16, Pause: 12.2 (When: 5287.9ms, Reason: REFRESH_FRAME): Mark: 10.4ms
            Slice: 18, Pause: 12.9 (When: 5469.2ms, Reason: REFRESH_FRAME): Mark: 10.3ms
            Slice: 19, Pause: 32.6 (When: 5779.2ms, Reason: REFRESH_FRAME): Mark: 31.1ms
            Slice: 20, Pause: 1278.5 (When: 7992.5ms, Reason: CC_FORCED, Reset: requested): Purge: 1.1ms, Mark: 837.9ms, Mark Roots: 31.0ms, Mark Other: 39.3ms, Finalize Start Callback: 2.9ms, Sweep: 317.8ms, Sweep Compartments: 188.8ms, Sweep Object: 28.4ms, Sweep String: 5.0ms, Sweep Script: 9.2ms, Sweep Shape: 45.4ms, Discard Code: 19.3ms, Discard Analysis: 134.1ms, Discard TI: 11.9ms, Sweep Types: 71.5ms, Clear Script Analysis: 4.8ms, Finalize End Callback: 16.7ms, Deallocate: 0.6ms, End Callback: 119.7ms
            Totals: Begin Callback: 0.2ms, Wait Background Thread: 0.3ms, Purge: 10.7ms, Mark: 1238.0ms, Mark Roots: 198.9ms, Mark Other: 39.3ms, Finalize Start Callback: 2.9ms, Sweep: 317.8ms, Sweep Compartments: 188.8ms, Sweep Object: 28.4ms, Sweep String: 5.0ms, Sweep Script: 9.2ms, Sweep Shape: 45.4ms, Discard Code: 68.5ms, Discard Analysis: 134.1ms, Discard TI: 11.9ms, Sweep Types: 71.5ms, Clear Script Analysis: 4.8ms, Finalize End Callback: 16.7ms, Deallocate: 0.6ms, End Callback: 119.7ms
Do you have a regression range?
Whiteboard: [js:p1:fx16][js:investigate]
Assignee: general → wmccloskey
Whiteboard: [js:p1:fx16][js:investigate] → [js:inv:p1]
(In reply to David Mandelin from comment #1)
> Do you have a regression range?

Sorry I missed your question but I also don't have a good answer here. The last time I was running this test was around September 2011. I would have to try some nightly builds in this range so we get a better idea. But this test also takes a lot of time and it's hard to automate.
mozmill can do stuff like open a bunch of tabs.  I'm not sure how hard it would be to get the v8 score out of it, though.  https://areweslimyet.com/ is generated by a mozmill thing that opens a bunch of pages and then checks the memory reporters.
Unassigning myself from old bugs. Don't worry, not quitting.
Assignee: wmccloskey → nobody
A regression ranges seems very unlikely to be useful at this point. Might be worth testing a current nightly to see how things are these days, though.
Compare with:  
* bug 951645 - Firefox becomes slow after a while when having many tabs open
* bug 1089917 - Firefox is very slow with many tabs with heavy graphics
Severity: normal → S3

Is this worth keeping open?

Flags: needinfo?(sdetar)

Jan, can we close this bug?

Flags: needinfo?(sdetar) → needinfo?(jdemooij)

(In reply to Steven DeTar [:sdetar] from comment #8)

Jan, can we close this bug?

Yes, I don't think this bug will go anywhere. Firefox has improved a lot in the past 11 years, especially with e10s and Fission. Nowadays that benchmark will likely get its own content process.

Status: NEW → RESOLVED
Closed: 1 year ago
Flags: needinfo?(jdemooij)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.