Closed Bug 825330 Opened 12 years ago Closed 10 years ago

Firefox 17 bloats memory on Win 7 x64 and doesn't on XP 32bit

Categories

(Web Compatibility :: Site Reports, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: senglory, Unassigned)

References

()

Details

(Whiteboard: [MemShrink:P3])

Attachments

(1 file)

Put sessionstore.js in profile folder and try to restore the session in FF. It will take a lot of memory in Win7 x64 and less than 1GB of RAM in case of XP 32 bit. ALso the attached PNG file shows your possible URL that may leag to wasting at least of 1.5Gb of this amount of RAM.
Severity: normal → major
Could you post the log from about:memory?verbose (type this in the location bar) when the memory use is important.

Did you try in safe mode to see if the issue comes from an add-on?
https://support.mozilla.org/en-US/kb/troubleshoot-firefox-issues-using-safe-mode
Severity: major → normal
Component: General → Untriaged
Flags: needinfo?(senglory)
Whiteboard: [MemShrink]
... and you seem to have forgotten to attach your Attachments :)
Attached file about-memory-verbose
Now regarding safe mode. When I ran FF in safe mode it took pretty moderate 400Mb without any attempt of bloating. But when I opened  this URL:http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CE0QFjAE&url=http%3A%2F%2Fblogs.flexnetconsult.co.uk%2Fcolinbyrne%2F2008%2F02%2F26%2FPowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx&ei=CQLYUIC1IIX74QT8mYHIBA&usg=AFQjCNEfzv-rcEOk1hYk1JtDoZA-mmi0Yg&bvm=bv.1355534169,d.bGE&cad=rjtit started inflating very quickly and crashed after taking about 3Gb.
Flags: needinfo?(senglory)
Visiting that link even on 32 bit made firefox eat up wast amounts of memory and even after closing the page will firefox remain highly unstable with a few seconds of no cpu usage then go to 100% with rapid surges of memory allocated.

The instability can be described as following:
1. Tab closed
2. memory drops to 1.7GB 
3. CPU rise to 100% blocking the main thread
4. Memory starts being allocated to 2.08GB
5. CPU drops to 30% on firefox
6. Memory drops to 1.7GB
7. wait ~10 seconds
repeat 3-7

Nothing can be done while firefox is getting its main thread blocked
The question still open. How come the main thread gets blocked? And how to avoid this case?
STR:
Open http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/PowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx

This URL blocks the main thread due to a script:

A script on this page may be busy, or it may have stopped responding. You can stop the script now, or you can continue to see if the script will complete.
Script: http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/PowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx:153

about:memory log:

├──471,714,306 B (73.02%) -- top(http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/PowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx, id=13)
│  │  ├──471,046,934 B (72.92%) -- active/window(http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/PowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx)
│  │  │  ├──265,514,800 B (41.10%) -- dom
│  │  │  │  ├──157,279,024 B (24.35%) ── element-nodes
│  │  │  │  ├──108,227,440 B (16.75%) ── text-nodes
│  │  │  │  ├────────7,856 B (00.00%) ── other [2]
│  │  │  │  └──────────480 B (00.00%) ── comment-nodes
│  │  │  ├──204,058,272 B (31.59%) -- layout
│  │  │  │  ├──202,916,152 B (31.41%) -- frames
│  │  │  │  │  ├──135,241,200 B (20.93%) ── nsTextFrame
│  │  │  │  │  ├───67,619,920 B (10.47%) ── nsInlineFrame
│  │  │  │  │  ├───────23,640 B (00.00%) ── sundries
│  │  │  │  │  ├───────21,312 B (00.00%) ── nsBlockFrame
│  │  │  │  │  └───────10,080 B (00.00%) ── nsTableCellFrame
│  │  │  │  ├──────886,136 B (00.14%) ── pres-shell
│  │  │  │  ├──────115,648 B (00.02%) ── style-sets
│  │  │  │  ├───────52,992 B (00.01%) ── text-runs
│  │  │  │  ├───────31,768 B (00.00%) ── style-contexts
│  │  │  │  ├───────18,608 B (00.00%) ── pres-contexts
│  │  │  │  ├───────18,528 B (00.00%) ── line-boxes
│  │  │  │  └───────18,440 B (00.00%) ── rule-nodes
│  │  │  ├────1,425,046 B (00.22%) -- js/compartment(http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/PowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx)
│  │  │  │    ├──1,069,568 B (00.17%) -- shapes-extra
│  │  │  │    │  ├──1,049,216 B (00.16%) ── compartment-tables
│  │  │  │    │  └─────20,352 B (00.00%) ── dict-tables
│  │  │  │    ├────290,816 B (00.05%) -- gc-heap
│  │  │  │    │    ├──107,672 B (00.02%) -- shapes
│  │  │  │    │    │  ├───57,360 B (00.01%) ── dict
│  │  │  │    │    │  ├───40,256 B (00.01%) ── base
│  │  │  │    │    │  └───10,056 B (00.00%) ── tree/global-parented
│  │  │  │    │    ├───91,432 B (00.01%) ── unused-gc-things
│  │  │  │    │    ├───80,032 B (00.01%) ── objects/function
│  │  │  │    │    └───11,680 B (00.00%) ── sundries
│  │  │  │    ├─────32,768 B (00.01%) ── type-inference/type-pool
│  │  │  │    ├─────16,128 B (00.00%) ── objects-extra/slots
│  │  │  │    └─────15,766 B (00.00%) ── other-sundries
│  │  │  ├───────48,560 B (00.01%) ── style-sheets
│  │  │  └──────────256 B (00.00%) ── property-tables
│  │  └──────667,372 B (00.10%) -- cached/window(about:home)
│  │         ├──398,688 B (00.06%) -- js/compartment(about:home)
│  │         │  ├──278,528 B (00.04%) -- gc-heap
│  │         │  │  ├──106,632 B (00.02%) ── unused-gc-things
│  │         │  │  ├───91,456 B (00.01%) -- shapes
│  │         │  │  │   ├──45,744 B (00.01%) ── dict
│  │         │  │  │   ├──33,664 B (00.01%) ── base
│  │         │  │  │   └──12,048 B (00.00%) ── tree/global-parented
│  │         │  │  ├───70,272 B (00.01%) ── objects/function
│  │         │  │  └───10,168 B (00.00%) ── sundries
│  │         │  ├───54,560 B (00.01%) -- shapes-extra
│  │         │  │   ├──37,632 B (00.01%) ── compartment-tables
│  │         │  │   └──16,928 B (00.00%) ── dict-tables
│  │         │  ├───32,768 B (00.01%) ── type-inference/type-pool
│  │         │  ├───16,832 B (00.00%) ── objects-extra/slots
│  │         │  └───16,000 B (00.00%) ── other-sundries
│  │         ├──179,120 B (00.03%) -- layout
│  │         │  ├──105,312 B (00.02%) ── style-sets
│  │         │  ├───43,168 B (00.01%) ── pres-shell
│  │         │  ├───10,064 B (00.00%) ── frames/sundries
│  │         │  ├────8,272 B (00.00%) ── style-contexts
│  │         │  ├────6,720 B (00.00%) ── rule-nodes
│  │         │  ├────3,616 B (00.00%) ── pres-contexts
│  │         │  └────1,968 B (00.00%) ── line-boxes
│  │         ├───63,804 B (00.01%) -- dom
│  │         │   ├──45,280 B (00.01%) ── element-nodes
│  │         │   ├──10,172 B (00.00%) ── text-nodes
│  │         │   ├───7,488 B (00.00%) ── other
│  │         │   └─────864 B (00.00%) ── comment-nodes
│  │         ├───24,736 B (00.00%) ── style-sheets
│  │         └────1,024 B (00.00%) ── property-tables

Other Measurements
179 (100.0%) -- js-compartments
├──173 (96.65%) ── system
└────6 (03.35%) ── user

35,184,314 B (100.0%) -- js-main-runtime
├──25,131,482 B (71.43%) -- compartments
│  ├──14,454,784 B (41.08%) -- gc-heap
│  │  ├───7,617,624 B (21.65%) ── unused-gc-things
│  │  ├───2,567,168 B (07.30%) -- objects
│  │  │   ├──1,720,352 B (04.89%) ── function
│  │  │   ├────684,064 B (01.94%) ── ordinary
│  │  │   ├─────86,960 B (00.25%) ── cross-compartment-wrapper
│  │  │   └─────75,792 B (00.22%) ── dense-array
│  │  ├───2,171,104 B (06.17%) -- shapes
│  │  │   ├──1,049,784 B (02.98%) -- tree
│  │  │   │  ├────896,664 B (02.55%) ── global-parented
│  │  │   │  └────153,120 B (00.44%) ── non-global-parented
│  │  │   ├────599,008 B (01.70%) ── base
│  │  │   └────522,312 B (01.48%) ── dict
│  │  ├───1,204,680 B (03.42%) ── scripts
│  │  ├─────725,936 B (02.06%) -- strings
│  │  │     ├──457,584 B (01.30%) ── normal
│  │  │     └──268,352 B (00.76%) ── short
│  │  ├──────86,280 B (00.25%) ── arena-admin
│  │  ├──────76,672 B (00.22%) ── type-objects
│  │  └───────5,320 B (00.02%) ── sundries
│  ├───3,278,904 B (09.32%) ── script-data
│  ├───2,612,032 B (07.42%) -- shapes-extra
│  │   ├──2,116,160 B (06.01%) ── compartment-tables
│  │   ├────196,320 B (00.56%) ── dict-tables
│  │   ├────167,584 B (00.48%) ── tree-shape-kids
│  │   └────131,968 B (00.38%) ── tree-tables
│  ├───1,955,952 B (05.56%) -- type-inference
│  │   ├──1,736,704 B (04.94%) ── analysis-pool
│  │   ├────163,840 B (00.47%) ── type-pool
│  │   └─────55,408 B (00.16%) ── type-scripts
│  ├───1,078,206 B (03.06%) -- string-chars
│  │   ├──1,065,918 B (03.03%) ── non-huge
│  │   └─────12,288 B (00.03%) ── huge/string(length=4402, "data:image//png;base64,iVBORw0KG...")
│  ├─────966,368 B (02.75%) -- objects-extra
│  │     ├──931,136 B (02.65%) ── slots
│  │     ├───22,528 B (00.06%) ── regexp-statics
│  │     └───12,704 B (00.04%) ── elements
│  ├─────205,056 B (00.58%) ── cross-compartment-wrapper-table
│  ├─────184,320 B (00.52%) ── regexp-compartment
│  ├─────183,296 B (00.52%) ── compartment-object
│  ├──────97,824 B (00.28%) ── jaeger-data
│  ├──────91,648 B (00.26%) ── debuggees-set
│  └──────23,092 B (00.07%) ── other-sundries
├───7,565,312 B (21.50%) -- gc-heap
│   ├──7,221,248 B (20.52%) ── decommitted-arenas
│   ├────344,064 B (00.98%) ── chunk-admin
│   ├──────────0 B (00.00%) ── unused-chunks
│   └──────────0 B (00.00%) ── unused-arenas
└───2,487,520 B (07.07%) ── runtime

14,798,848 B (100.0%) -- js-main-runtime-gc-heap-committed
├───7,617,624 B (51.47%) -- unused
│   ├──7,617,624 B (51.47%) ── gc-things
│   ├──────────0 B (00.00%) ── chunks
│   └──────────0 B (00.00%) ── arenas
└───7,181,224 B (48.53%) -- used
    ├──6,750,880 B (45.62%) ── gc-things
    ├────344,064 B (02.32%) ── chunk-admin
    └─────86,280 B (00.58%) ── arena-admin

0 (100.0%) -- low-memory-events
├──0 (100.0%) ── physical
└──0 (100.0%) ── virtual

471,655,584 B (100.0%) -- window-objects
├──265,913,688 B (56.38%) -- dom
│  ├──157,559,468 B (33.41%) ── element-nodes
│  ├──108,238,716 B (22.95%) ── text-nodes
│  ├──────113,360 B (00.02%) ── other
│  ├────────2,144 B (00.00%) ── comment-nodes
│  └────────────0 B (00.00%) ── cdata-nodes
├──205,261,760 B (43.52%) -- layout
│  ├──202,997,472 B (43.04%) ── frames
│  ├────1,209,008 B (00.26%) ── pres-shell
│  ├──────778,112 B (00.16%) ── style-sets
│  ├───────86,000 B (00.02%) ── rule-nodes
│  ├───────76,736 B (00.02%) ── style-contexts
│  ├───────53,152 B (00.01%) ── text-runs
│  ├───────36,704 B (00.01%) ── pres-contexts
│  └───────24,576 B (00.01%) ── line-boxes
├──────477,832 B (00.10%) ── style-sheets
└────────2,304 B (00.00%) ── property-tables

      921,600 B ── canvas-2d-pixel-bytes
  645,928,537 B ── explicit
        2,116 B ── gfx-d2d-surfacecache
    5,237,096 B ── gfx-d2d-surfacevram
   11,292,856 B ── gfx-d2d-vram-drawtarget
      514,652 B ── gfx-d2d-vram-sourcesurface
      605,440 B ── gfx-surface-image
              0 ── ghost-windows
  622,421,034 B ── heap-allocated
  647,827,456 B ── heap-committed
   25,367,376 B ── heap-committed-unused
          4.07% ── heap-committed-unused-ratio
    3,215,360 B ── heap-dirty
   58,067,668 B ── heap-unused
       11,952 B ── images-content-used-uncompressed
   22,020,096 B ── js-gc-heap
              0 ── low-commit-space-events
  749,842,432 B ── private
  798,416,896 B ── resident
    6,834,272 B ── storage-sqlite
1,119,727,616 B ── vsize
First, its expected that 32 bit will use less memory than 64 bit because pointers take half the size.

The blog page linked works just fine for me.  I don't see any slow script dialog or high memory usage.  Has the page changed?  Can you still reproduce this problem?
Flags: needinfo?(senglory)
Whiteboard: [MemShrink] → [MemShrink:P3]
FWIW, the Link in Comment 3 still kills today's Nightly as described. The direct Link without Google.ru is WFM.
(In reply to XtC4UaLL [:xtc4uall] from comment #8)
> FWIW, the Link in Comment 3 still kills today's Nightly as described. The
> direct Link without Google.ru is WFM.

Aha!  Interesting.
Flags: needinfo?(senglory)
When the slow script dialog fires:

Hit JavaScript "debugger" keyword. JS call stack...
0 highlightWord() ["http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/Powe
rShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx":172]
    this = [object Window]
1 highlightWord() ["http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/Powe
rShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx":156]
    this = [object Window]
2 highlightWord() ["http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02/26/Powe
rShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx":156]
    this = [object Window]
3 googleSearchHighlight() ["http://blogs.flexnetconsult.co.uk/colinbyrne/2008/02
/26/PowerShellSharePointThreeWaysToDeleteAListItemIDCAMLStringMatching.aspx":209
]
    this = [object Window]
So the page has a script that only runs when the referrer is google.
This is a site bug.  It extracts the search term from the google referrer URL and tries to highlight it.  In this case the highlighter searches for "" because of the "&q=" bit in the URL.  <arbitrary string>.indexOf("") always returns 0, so the script ends up ilooping.  The site has the same behavior in Chrome.
Assignee: nobody → english-us
Status: UNCONFIRMED → NEW
Component: Untriaged → English US
Ever confirmed: true
Product: Firefox → Tech Evangelism
Version: 17 Branch → unspecified
Either the site has changed or been updated but it doesn't seem to exhibit the issue anymore.
Assignee: english-us → nobody
Status: NEW → RESOLVED
Closed: 10 years ago
Component: English US → Desktop
Resolution: --- → WORKSFORME
Product: Tech Evangelism → Web Compatibility
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: