Closed Bug 966662 Opened 10 years ago Closed 3 months ago

Memory usage increase with Firefox 26 compared to earlier

Categories

(Core :: Graphics, defect)

43 Branch
x86_64
Windows 7
defect

Tracking

()

VERIFIED INCOMPLETE

People

(Reporter: therubex, Unassigned)

Details

(Whiteboard: [MemShrink:P2])

Attachments

(4 files)

Memory usage increase with Firefox 26 compared to earlier.

Memory usage increase with Gecko versions > 25.

Noted in XP & Win7.
Noted in SeaMonkey & Firefox.

Substantial increases.

(I mainly use SeaMonkey.)

I use LOTS of windows/tabs, so high memory usage is normal for me, but the amounts I'm seeing in Beta & Nightly are abnormal in comparison.

Tested by restarting from Session Restore with varying versions of Mozilla.
Using my regular Profile, as it is, extensions & whatever.

In the case of FF, starting with an empty Profile, I copied over (from SeaMonkey) sessionstore.json (renamed to sessionstore.js), /extensions/, /chrome/, /plugins/, places.sqlite, prefs.js, & user.js.  Doing so, I figured was about the most equal a way to compare (against my regularly running SeaMonkey).

Win7
My regular, normal Profile, all extensions & whatnot
Doing nothing more then opening from Session Restore
79 Windows, 1290 tabs


> 1500 MB  SM 2.23

> 2121 MB  FF 26
> 2488 MB  SM 2.24 Beta
> 2585 MB  SM 2.25 (an older Aurora from 1-10-14)

> 2589 MB  SM 2.26 (Nightly 2-1-14)
> 3376 MB  FF 29 (Nightly 1-31-14, 32-bit)
> 4583 MB  FF 29 (Nightly 2-1-14, 64-bit)

I can generate & save memory reports.
But cannot diff them.

All I get is:

> Main Process (pid NNN)
> Explicit Allocations

(Each report is ~17 MB, uncompressed.)


FF 29 32-bit crashed, not unexpectedly, when attempting to generate a memory report.
https://crash-stats.mozilla.com/report/index/ffe3d2b5-20c6-4834-8fbb-eb44c2140201


SeaMonkey Aurora Mem Usage Way High
http://forums.informaction.com/viewtopic.php?f=18&t=18999
Attached file about:support
Getting somewhere ...

New Profile
Existing sessionstore.json
Minimal user.js
> user_pref("browser.sessionstore.max_concurrent_tabs", 0);
> user_pref("browser.tabs.tabMinWidth", 30);
Install NoScript, but Disable
> set Plugin blocking (embeddings) to apply to whitelisted sites too
All extensions disabled
All Plugins disabled, except for Flash, set to Ask

-------

> 2200 MB  SM 2.23  CPU 15%, variable, non-ceasing
Long time to load, actually hard to tell since CPU never settled down
Some pages non-responsive, many others initially "black" before displaying properly, "drawing" issues
Two different attempts resulting in two crashes:
https://crash-stats.mozilla.com/report/index/dad460a6-089b-496e-94c6-de0162140202
https://crash-stats.mozilla.com/report/index/26180631-57c7-4556-96f1-bf8642140202

Essentially not usable

> 2030 MB  FF 26  CPU 12%, variable, non-ceasing
Acted just like SeaMonkey, except "black" pages tended to remain that way
Waited a short while for it to crash, but it didn't

Essentially not usable

-------

Enabled NoScript

-------

> 1430 MB  SM 2.23  CPU 9%, variable, often only a few %
Fully loaded < 1:min, should be usable

> 1460 MB  SM 2.26  CPU nil
CPU initially like 2.23, but after a minute, settled down to nil

> 1540 MB  FF 26  CPU 8%, variable, then settled down to nil
> 1670 MB  FF 29  CPU ditto
FF29 seemed to take a little longer to load, then settle down, but immaterial

---

So... at this point it is kind of looking like some other extension is where the actual problem may lie.  Just have to do some more digging...
I forgot FF 29 64-bit:

> 2700 MB  FF 26  CPU 1%
CPU variable initially, then settled down to ~1% (others may have been ~0.25%) & again FF29 seemed to take a bit longer to load
New Profile:

SM 226
Install NoScript

Copy over existing sessionstore.json

SM 226 & NoScript {mozhere}
1500 MB, it was around that number, didn't really pay attention, should have

Add extensions, 1 at a time & restart:

1730 + Adblock Plus
1800 + FlashGot
1770 + JsView, actually went down?
1790 + AutoCopy
1780 + CopyURL+
1780 + fetch_text_url-1.6.4-mod (ftu)
1780 + Image Zoom
1760 + Named Anchors, seemed to take a while to settle down & a bit of variability until it did, high 1830
1750 + Nuke Anything Enhanced
1780 + TabStats
1800 + /chrome/ directory, whatever was existing
1830 + places.sqlite
1860 + user.js (can only say "typical" variance, because other then size, /content/ is the same, i believe)
1830 + /plugins/ aka NPMSWMP.dll
1860 + prefs.js
1800 + ChatZilla (enabled in Addons Manager)
1810 + DOMI (enabled...)
1810 + JavaScript Debugger (enabled...)
1870 + Flash, Always Activate (changed from Ask)

Rename /extensions/ to /extensions.generated/

1820 + /extensions/ replacing "generated" with existing (seems /seamonkey/ extensions changed?)

1810 + extensions.sqlite, adblock-rules.json, mimeTypes.rdf, addons.sqlite, bookmarks.html (all seemingly no longer used)
1840 + /chatzilla/ (a duplicate it would seem to be) /shortcutCache/ (no longer used?) /OfflineCache/ (no longer used?)

-------

At this point, no matter what I did all is well.  Adding extensions, /chrome/, enabling Plugins & extensions, all mattered not, as I am not seeing any huge increase in memory usage.

-------

Drop back down to SM 2.23:

1700 w/SM 223 & NoScript {mozhere}

And then back up to SM 2.26:

1870 w/SM 226 & NoScript {mozhere}

A difference, but minor.

-------

Remove, then reinstall Adblock Plus (thinking that perhaps 'restartless' hass something to do with it.  But other then increased memory usage with it installed, still no huge increase seen.

1550 - Adblock Plus (remove)
1840 + Adblock Plus

-------

I then copied my existing Profile, excluding /cache/, the one where I do see the huge memory increase, & sure enough, the huge increase is replicated.  (Using -no-remote or not made no diffrence.)

2600 w/SM 226 & p_SJB - /cache/ - WAM BAM THANK YOU MAM

Closed down.  Reopened with SM 223, with a substantial drop in memory usage:

1560 w/SM 223 & p_SJB - /cache/

-------

Now this copy of my existing Profile, that does give the huge memory increase, is essentially the same as a newly created Profile with the same extensions, same prefs.js, same user.js, same /chrome/, same Plugins... yet the newly created Profile does not have the same huge memory increase?

.json files are likely different (at least in a different order).
ditto with .sqlite files, localstore.rdf.

-------

So at this point I might say:

Memory usage increase with Gecko versions > 25 - with some existing Profiles.

Just don't know why, yet.
prefs.js it looks like.
Now just have to figure just what in there causes the problem?

Perhaps:  browser.download.dir, dom.report_all_js_exceptions, gfx.direct2/3d.*,  extensions.installCache, or services.sync.* ?
It's looking like: user_pref("layers.acceleration.disabled", true);
STR:

Create a new, blank Profile (IOW nothing within it)

Create a user.js
> user_pref("browser.sessionstore.max_concurrent_tabs", 0);
>
> user_pref("layers.acceleration.disabled", true);
> user_pref("gfx.direct2d.disabled", true);

Place user.js within the Profile

Start FF26
Close FF26
Start FF26
Start Page loads
> 64 MB
Close FF26

Start FF29
Start Page loads
> 79 MB
Close FF29

Copy large sessionstore.js file into Profile

Start FF26, restoring previous session
> 2040 MB
Close FF26

Start FF29, restoring previous session
> 3270 MB
Close FF29

-------

browser.sessionstore.max_concurrent_tabs is only there so that I don't crash due to OOM issues & so that I load within a somewhat reasonable amount of time.  Otherwise its immaterial.

-------

> user_pref("layers.acceleration.disabled", true);
> user_pref("gfx.direct2d.disabled", true);

Now why that combination of settings?  Don't really know?  From what I recall, perhaps even to this day, the direct2d was/is needed to prevent crashes, or to prevent a greater likelihood of crashing.  Layers, must have helped with some issue I ran into long ago & has simply persisted in my prefs.js.
Problem still exists on XP, & I'm not sure why at this point?
Systems are different between Win7 & XP (obviously) & in particular the Graphics.

STR:

Create a new, blank Profile (IOW nothing within it)

Create a user.js
> user_pref("browser.sessionstore.max_concurrent_tabs", 0);

Place user.js within the Profile

Copy large sessionstore.json file into Profile
> 49 windows, 698 tabs

Start SM223, restoring previous session
> 1300 MB  CPU 50% (1 of 2 cores), non-ceasing, plugin-container.exe loaded (due to Flash, but not Flash itself)
Close SM223

Start SM225a2 (older, from 1-17-14), restoring previous session
> 1700 MB  CPU 50%, & ditto the rest of the comments
Close SM225a2

Set Flash to 'Ask'
Install NoScript

Start SM223, restoring previous session
>  715 MB  CPU is not an issue, plugin-container.exe does not load
Close SM223

Start SM225a2, restoring previous session
> 1000 MB  CPU ... ditto above
Close SM225a2

-------

I'm kind of clueless as to what to try next on my XP system?
about:support attached, XP system

WinXP SP3
Intel Core2 Duo E4300
2 GB RAM
Nvidia GeForce4 MX 440 (with some ancient, I assume, drivers)
Oh, forget to mention, & as an aside, without NoScript installed, with the CPU usage at 50%, using Mozilla, with my configuration, is not viable.
Firefox:

STR:

Create a new, blank Profile (IOW nothing within it)

Create a user.js
> user_pref("browser.sessionstore.max_concurrent_tabs", 0);

Place user.js within the Profile

Copy large sessionstore.json (renamed to sessionstore.js) file into Profile
> 49 windows, 698 tabs

Set Flash to 'Ask'
Install NoScript

Start FF26, restoring previous session
>  700 MB  CPU is not an issue, plugin-container.exe loads
Close FF26

Start FF28a2 (older, from 1-17-14), restoring previous session
> 1000 MB  CPU ... ditto above
Close FF28a2
A quick look is pointing towards Azure (whatever that is, whatever that does) on my XP system.
Azure, gfx.content.azure.

-------

>  912 MB  SM 223
> 1150 MB  SM 224

Set gfx.content.azure.enabled;false

>  945 MB  SM 224, so a 200 MB increase with gfx.content.azure enabled

---

>  700 MB  FF 26
>  950 MB  FF 27

Set gfx.content.azure.enabled;false

>  750 MB  FF 27, ditto, a 200 MB increase with gfx.content.azure enabled

-------

So for whatever reason, whatever Azure does, however it interacts with my Graphics, seemingly, when it is enabled (true), it causes a LARGE increase in Memory Usage on my particular XP system.

(Same sessionstore.json/.js between runs, but different between SeaMonkey & FF, & that is why the SeaMonkey numbers are showing higher then FF & higher then my above reports too.)
Moving to Untriaged.
Component: General → Untriaged
Product: Core → Firefox
SeaMonkey 2.25 (& FF 28) are now out.

Nothing scientific, just doing what I would normally do, so all existing as it was, my regular Profile, extensions & all that.

Doing nothing more then Open, restoring previous session, noting memory usage, closing, switching versions & repeating.

This is on my XP machine:

SM 2.24
> 1018 MB

SM 2.25
> 1340 MB

The change I made with 2.24, that did help, that did give me a sizable decrease (back to about where I was with SM 2.23) in memory usage, was to set /gfx.content.azure/ to 'false'.

So figured I'd revert that I see what happens...

SM 2.25 + gfx.content.azure;true (aka Reset to default)
> 1340 MB

So with 2.24 setting the Pref made a sizable diff in Mem usage, but with 2.25 it seems to have no affect at all.

I'm open to ideas?

And will check to see how FF28 compares & also test in a (somewhat) more controlled method, & also see how my Win7 box (using a different work-around for that) fares - at a later time.
Nothing scientific, ...

Doing nothing more then Open, ...

This is on my Win7 machine:

SM 2.23
> 1603 MB

SM 2.24
> 1700 MB

SM 2.25
> 1720 MB

SM 2.25
> 2498 MB (after setting /layers.acceleration.disabled;true/)

SM 2.26a2 (most recent Aurora, at the moment, 20140317013001)
> 1796 MB aurora of & reverting layers.*

---

So, my Win7 machine is (relatively) unaffected by the last few of version changes.
My Win7 machine is still greatly affected if layers.acceleration.disabled is enabled (set to true). (Not an issue, but just pointing out a [set perhaps] of conditions that if enabled contribute to greatly increased RAM usage.)

My XP machine is greatly affected by the change from SM 2.24 to 2.25 & is not "fixed" by the Pref change that did work for SM 2.24.
And now with this increase in memory usage, I am much more apt to "crash" (hang really).

When I get to ~1.7 GB of memory usage, I'll "crash", hang.

I'm left with everything open, no I/O, zero or perhaps ~1% CPU usage, at most a single window that I can "access" (bring to top, continuously showing a busy cursor, but otherwise unable to interact with it - in any manner).

At that point, my only remedy is to kill the browser.
(Nirsoft's) What Is Hang, report#1 .TXT
(Nirsoft's) What Is Hang, report#2 .TXT
Hi therube,

Are you still having memory usage problems with newer versions of Firefox?
Status: NEW → UNCONFIRMED
Ever confirmed: false
Flags: needinfo?(therubex)
What was, back then, is hardly relevant to anything today.
But... just for giggles...

Win7 x64, i5-3570K, Intel HD 4000 (on chip) graphics, 16 GB RAM

Baseline: SeaMonkey 2.39 using existing (& still open & running) Profile, meaning with my usual array of extensions, settings... that I've been running since this morning.

Memory usage in MB, Private | Working Set:

> 1735 | 2685

---

Then...

New Profiles for all
Using existing SeaMonkey sessionstore.json (renamed to sessionstore.js for FF)
Install NoScript & set Embeddings Options, enable all (blocks)

Load session & see what happens...

---

FF 43

> 2330 | 3125

I did nothing more then load FF & wait for CPU to subside.
With that, for whatever reason, FF was unstable. I tried to load 1 additional web page, & the page went black, jumped to a different window/tab - that displayed OK, then back to "black" page & it too was OK, but still not stable & situation repeated.  Then CPU jumped to 25% (1 of 4 cores) & shortly thereafter FF crashed.

I was totally not expecting to see that, the crash, much less the significant differences in memory usage against Baseline, which I'm not able to account for offhand?

OOM: https://crash-stats.mozilla.com/report/index/5d68f382-bf4b-465a-a586-15d3e2160110

(And I see FF took sessionstore.json aka sessionstore.js, got rid of that & did some sessionstore-backups/* stuff with it.  In any case, loading of the [SeaMonkey] sessionstore.json was not an issue.)

---

FF 25

> 1496 | 1797

A *HUGE* load time difference between FF 25 & FF 43.0.4 (not to mention memory usage).
Blew me away.

tab_stats-0.0.5-fx+SM (last working version).xpi:

> 1366 tabs across 88 groups in 88 windows
> 90 tabs have been loaded
> 1306 unique addresses
> 458 unique hosts
> 1 empty tab
> 243 https:
> 1117 http:
> 1 file:
> 4 about:

---

SeaMonkey 2.23

> 1433 | 1910

---

Anyhow...

Total surprised by what I saw with FF 43, & offhand don't know what to attribute what I saw to?
Flags: needinfo?(therubex)
FWIW, FF 43.0.4 x64

> 3249 | 4000

Took a long time to finally load, like with 43 x86, but it appears it will be stable.
Whiteboard: [MemShrink]
I'm looking at the Crash Report which :therube linked and I see several related bugs related to memory and the stack trace looks like it's getting into trouble in xpcom's cycle collector so I'll move to that component.
Component: Untriaged → XPCOM
Flags: needinfo?(continuation)
Product: Firefox → Core
Version: Trunk → 43 Branch
That difference in memory usage is indeed alarming! Maybe there's some kind of per-window overhead from graphics, or some bad interaction with your driver?  You have a fair number of tabs, but the number of windows you have open I'd say is more unusual.

The crash is a little odd. The cycle collector I think is running out of memory, but I guess given how high the memory usage is it isn't too surprising. The allocation is a little bit big, but not too big. I think I'll move this over to graphics, though I'm not sure if anything will end up being done, unfortunately.
Component: XPCOM → Graphics
Flags: needinfo?(continuation)
Whiteboard: [MemShrink] → [MemShrink:P2]
Severity: normal → S3

Reporter, are you still experiencing this issue?

Flags: needinfo?(therubex)

Clear a needinfo that is pending on an inactive user.

Inactive users most likely will not respond; if the missing information is essential and cannot be collected another way, the bug maybe should be closed as INCOMPLETE.

For more information, please visit BugBot documentation.

Flags: needinfo?(therubex)

This bug is almost exactly a decade old without any concrete steps to fix, so let's close this.

Status: UNCONFIRMED → RESOLVED
Closed: 3 months ago
Resolution: --- → INCOMPLETE

(Oh, I happened upon this, today, by chance... In any case...)

This bug is necro, & no longer has any relevance to what FF is today.

So am I still experiencing the issue, on current FF or SeaMonkey, no.

(There could still be some relevance on the SeaMonkey end ? but even if so, it is moot at this point in time.)

Thanks for following up!

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: