Closed Bug 1052050 Opened 10 years ago Closed 8 years ago

Long running Firefox Process with a lot of tabs causes high CPU usage with general performance problems

Categories

(Firefox :: Untriaged, defect)

31 Branch
x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: fiveNinePlusR, Unassigned)

Details

(Keywords: perf)

Attachments

(2 files, 1 obsolete file)

4.74 MB, application/json
Details
1.99 MB, application/x-zip-compressed
fiveNinePlusR
: review+
Details
Attached file redacted-memory-report.json (obsolete) —
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0 (Beta/Release)
Build ID: 20140716183446

Steps to reproduce:

Have ~12 Windows open each with many tabs open.

use browser without restarting for a few days time. 


Actual results:

Slow response while browsing and scrolling.

consistent 20% CPU utilization. 

High memory usage even though many tabs are not loaded (from a browser restart)


Expected results:

CPU utilization should not be high, memory usage should be commensurate with number of tabs open.
Keywords: perf
I should ask: do you have any extensions installed? That might be relevant.

This is a bit weird:

│  ├─────76.27 MB (03.83%) -- top(http:/redacted, id=17623)
│  │     ├──64.75 MB (03.25%) -- active
│  │     │  ├──64.57 MB (03.24%) -- window(http:/redacted)
│  │     │  │  ├──32.94 MB (01.65%) ++ (4 tiny)
│  │     │  │  └──31.63 MB (01.59%) -- layout
│  │     │  │     ├──27.67 MB (01.39%) ── style-sets [7]
│  │     │  │     └───3.96 MB (00.20%) -- (7 tiny)
│  │     │  │         ├──2.28 MB (00.11%) ── pres-shell [7]
│  │     │  │         ├──0.51 MB (00.03%) ── rule-nodes [7]
│  │     │  │         ├──0.47 MB (00.02%) ++ frames
│  │     │  │         ├──0.44 MB (00.02%) ── style-contexts [7]
│  │     │  │         ├──0.12 MB (00.01%) ── pres-contexts [7]
│  │     │  │         ├──0.12 MB (00.01%) ── line-boxes [7]
│  │     │  │         └──0.02 MB (00.00%) ── text-runs

All those [7] values indicate that we have seven sets of measurements with the same paths. If there are multiple windows open, do top-window ids get reused by multiple windows? If they do, that plus the redaction would explain this. Otherwise, I have no idea.

Also, the hand-edited memory dumps have a number of syntax errors. I had to change a lots of |redacted"| occurrences to |redacted\\"| for it to load.
Flags: needinfo?(mapish)
sorry for the delay... my motherboard crashed on me. 

I do have a few extensions installed: 

Adblock plus 2.6.4
facebookBlocker 1.2.4
FlashBlock 1.5.17
LastPass 3.1.50
Places Maintenance 1.3
Session Manager 0.8.1.5

sorry about the memory dump. Is there a place in the code to create a patch that maybe could add native redaction? I just ran it through a quick and dirty script to pull out the urls. I updated my script to parse the file and now I will add another file with unique urls being specified with a http:\\redacted-<somenumber unique to the url>
Flags: needinfo?(mapish)
This should load up nicely in about:memory.
Attachment #8470996 - Attachment is obsolete: true
Bug 1010064 added the ability to anonymize of memory reports. It's present in Firefox 33, which is currently on the Aurora branch (aurora.mozilla.org).

It's always possible that an extension is causing the problem. If you could try running with them disabled for a while, that would be a helpful diagnostic step. I understand that might be annoying for a slow-to-manifest problem like this one, though :(
Yeah. that's the problem... I use firefox because I really value some of the extensions(and middle mouse click auto-scrolling and privacy stances made by mozilla foundation). Actually, because of performance problems I have disabled quite a few extensions in the hopes that it would solve it for me. 

Is there any work/interest in unloading tabs in the background that haven't gotten activity in a while to free up processing power and memory?
> Is there any work/interest in unloading tabs in the background that haven't
> gotten activity in a while to free up processing power and memory?

Bug 675539 is open for that, but I don't think it will happen any time soon, because it's difficult to ensure that you don't lose any valuable state. E.g. imagine if you had some half-written text in a textbox and Firefox unloaded that tab... and 101 variations on that.
Attached file KmZPu9Q5.dms.zip
This is a performance monitor from when it gets stuck in a 100-200%+ cpu performance loop and slows the machine down massively.
Attachment #8480970 - Flags: review+
Benoit, would you mind taking a look at the attached profile? Most time is being spent in gfx on a Mac, so I think you're probably the guy to determine what's going on.
Flags: needinfo?(bgirard)
From the profile you have something that's painting non stop and it seems fairly heavy. Can you identify what it is?

You can close tabs one at a time using APPLE+W. You can re-open the last closed tab with APPLE+SHIFT+T. You might be able to do that until you identify which closed tab fixed the problem.

Make sure that it's not a loading throbber that's causing the issue.

Also you're profiling a non nightly build which gives worse profiling results.
Flags: needinfo?(bgirard)
I think that the offending page may be this running for a while http://htmlstream.com/preview/unify-v1.5/page_home2.html

Not 100% sure though.
(In reply to mapish from comment #10)
> I think that the offending page may be this running for a while
> http://htmlstream.com/preview/unify-v1.5/page_home2.html

That URL is dead.

Are you still seeing this problem when using a current version? If you are then it would be good to reproduce this with minimal addons, and get a profile. 

If you have high memory usage to go with the high CPU then gc performace is probably hitting you. you might try enabling e10s, which has worked great for me.

(This is rather like bug 978223)
Flags: needinfo?(mapish)
Hi,
Marking this as Resolved: Incomplete due to the lack of response from the reporter.
Reporter, please feel free to reopen it if you are still having this issue, and also please follow the steps that Wayne suggested in Commnent 11.  
Thank you for your time.
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Flags: needinfo?(mapish)
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: