Closed
Bug 820113
Opened 13 years ago
Closed 12 years ago
Slow and spikes after load lot of images
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: leandrocostabh, Unassigned)
References
Details
(Whiteboard: [Snappy])
Attachments
(1 file)
748.71 KB,
text/plain
|
Details |
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
Build ID: 20121128204232
Steps to reproduce:
Use this site with example...
http://mpdrolet.tumblr.com/archive
Rolls this site until you reach october...
Actual results:
Firefox starts to "spike" and goes slow after they reach 300 ~ 400 MB of ram.
When you reach october firefox will using 900MB of ram.
Comment 1•13 years ago
|
||
Did this start with Firefox 17? Or did you just spot it now?
Flags: needinfo?(leandrocostabh)
Whiteboard: [MemShrink]
It's an old behavior with webpages displaying a huge quantity of images or thumbnails like galleries for instance.
Just open about:memory?verbose in the location bar, you should see an important memory compartment for image decoding.
(In reply to Virgil Dicu [:virgil] [QA] from comment #1)
> Did this start with Firefox 17? Or did you just spot it now?
Later I will install all old versions and test, to provide a best report...
But it appears to worsens every build...
Flags: needinfo?(leandrocostabh)
about:memory info FF 17.0.1
I don't now the precision of this information...
When I open a new tab to view the memory usage firefox drops lot of memory
usage...
With active tab (with images) firefox consumes 800mb of ram.
When I a open a new tab to view about:memory page it drops to 250mb too fast...
I don't care about memory consume, but the "lags" to change tabs (minimize and restore window) with too much images is annoying...
Next test firefox 16.0.2
Main Process
Explicit Allocations
477.42 MB (100.0%) -- explicit
├──388.69 MB (81.41%) -- images
│ ├──388.46 MB (81.37%) -- content
│ │ ├──388.46 MB (81.37%) -- used
│ │ │ ├──249.78 MB (52.32%) ── uncompressed-heap
│ │ │ ├──138.68 MB (29.05%) ── raw
│ │ │ └────0.00 MB (00.00%) ── uncompressed-nonheap
│ │ └────0.00 MB (00.00%) ++ unused
│ └────0.23 MB (00.05%) ++ chrome
├───33.53 MB (07.02%) -- window-objects
│ ├──27.10 MB (05.68%) -- top(http://mpdrolet.tumblr.com/archive, id=8)
│ │ ├──24.27 MB (05.08%) -- active
│ │ │ ├──23.60 MB (04.94%) -- window(http://mpdrolet.tumblr.com/archive)
│ │ │ │ ├──12.84 MB (02.69%) ++ layout
│ │ │ │ ├───8.26 MB (01.73%) ++ dom
│ │ │ │ └───2.51 MB (00.52%) ++ (3 tiny)
│ │ │ └───0.67 MB (00.14%) ++ window(http://assets.tumblr.com/analytics.html?11)
│ │ └───2.84 MB (00.59%) ++ cached/window(https://bugzilla.mozilla.org/show_bug.cgi?id=820113)
│ └───6.43 MB (01.35%) ++ (5 tiny)
├───27.37 MB (05.73%) -- js-non-window
│ ├──16.09 MB (03.37%) -- compartments
│ │ ├──14.50 MB (03.04%) ++ non-window-global
│ │ └───1.59 MB (00.33%) ++ no-global/compartment(atoms)
│ ├───9.00 MB (01.89%) ++ gc-heap
│ └───2.28 MB (00.48%) ++ runtime
├───19.99 MB (04.19%) ── heap-unclassified
└────7.84 MB (01.64%) ++ (11 tiny)
Other Measurements
141 (100.0%) -- js-compartments
├──133 (94.33%) ── system
└────8 (05.67%) ── user
36.67 MB (100.0%) -- js-main-runtime
├──25.38 MB (69.23%) -- compartments
│ ├──13.00 MB (35.44%) -- gc-heap
│ │ ├───6.13 MB (16.71%) ── unused-gc-things
│ │ ├───2.44 MB (06.65%) -- objects
│ │ │ ├──1.41 MB (03.85%) ── function
│ │ │ └──1.03 MB (02.80%) ── non-function
│ │ ├───2.04 MB (05.55%) -- shapes
│ │ │ ├──1.02 MB (02.79%) ── tree
│ │ │ ├──0.51 MB (01.40%) ── dict
│ │ │ └──0.50 MB (01.36%) ── base
│ │ ├───1.14 MB (03.10%) ── scripts
│ │ ├───1.02 MB (02.78%) ── strings
│ │ └───0.24 MB (00.65%) ++ (3 tiny)
│ ├───4.32 MB (11.77%) ── analysis-temporary
│ ├───3.51 MB (09.57%) ── script-data
│ ├───2.08 MB (05.67%) ── string-chars
│ ├───1.12 MB (03.06%) -- shapes-extra
│ │ ├──0.62 MB (01.69%) ── compartment-tables
│ │ └──0.50 MB (01.37%) ++ (3 tiny)
│ ├───0.98 MB (02.67%) -- objects
│ │ ├──0.80 MB (02.19%) ── slots
│ │ └──0.17 MB (00.47%) ++ (2 tiny)
│ └───0.38 MB (01.05%) ++ (3 tiny)
├───9.00 MB (24.56%) -- gc-heap
│ ├──3.00 MB (08.18%) ── unused-chunks
│ ├──2.97 MB (08.10%) ── unused-arenas
│ ├──2.74 MB (07.47%) ── decommitted-arenas
│ └──0.30 MB (00.81%) ── chunk-admin
└───2.28 MB (06.22%) ── runtime
19.26 MB (100.0%) -- js-main-runtime-gc-heap-committed
├──12.10 MB (62.80%) -- unused
│ ├───6.13 MB (31.81%) ── gc-things
│ ├───3.00 MB (15.57%) ── chunks
│ └───2.97 MB (15.41%) ── arenas
└───7.17 MB (37.20%) -- used
├──6.78 MB (35.21%) ── gc-things
├──0.30 MB (01.54%) ── chunk-admin
└──0.09 MB (00.45%) ── arena-admin
0 (100.0%) -- low-memory-events
├──0 (100.0%) ── physical
└──0 (100.0%) ── virtual
24.24 MB (100.0%) -- window-objects
├──14.50 MB (59.81%) -- layout
│ ├───4.39 MB (18.12%) ── style-contexts
│ ├───3.96 MB (16.35%) ── pres-shell
│ ├───3.08 MB (12.72%) ── frames
│ ├───0.88 MB (03.63%) ── style-sets
│ ├───0.85 MB (03.52%) ── text-runs
│ ├───0.62 MB (02.56%) ── line-boxes
│ ├───0.42 MB (01.73%) ── pres-contexts
│ └───0.29 MB (01.18%) ── rule-nodes
├───9.10 MB (37.54%) -- dom
│ ├──4.96 MB (20.48%) ── element-nodes
│ ├──3.37 MB (13.91%) ── text-nodes
│ ├──0.74 MB (03.07%) ── other
│ └──0.02 MB (00.08%) ++ (3 tiny)
├───0.64 MB (02.64%) ── style-sheets
└───0.00 MB (00.01%) ── property-tables
0.88 MB ── canvas-2d-pixel-bytes
477.36 MB ── explicit
17.82 MB ── gfx-d2d-surfacecache
4.88 MB ── gfx-d2d-surfacevram
14.52 MB ── gfx-d2d-vram-drawtarget
25.97 MB ── gfx-d2d-vram-sourcesurface
250.01 MB ── gfx-surface-image
0 ── ghost-windows
453.92 MB ── heap-allocated
467.01 MB ── heap-committed
13.08 MB ── heap-committed-unused
2.88% ── heap-committed-unused-ratio
3.96 MB ── heap-dirty
281.08 MB ── heap-unused
249.78 MB ── images-content-used-uncompressed
22.00 MB ── js-gc-heap
0 ── low-commit-space-events
551.62 MB ── private
588.09 MB ── resident
4.10 MB ── storage-sqlite
1,112.14 MB ── vsize
It's a normal behavior, Firefox discards the images from memory when you switch to another tab to reduce the footprint.
Anyway, keep in mind decoding images uses a lot of memory.
Tested all versions.
4.0.1, 5.0.1, 6.0.2, 7.0.1 changing tabs (with images) have no "lag"...
8.0.1, 9.0.1, 10.0.1, 11.0, 12.0, 13.0.1, 14.0.1, 15.0.1, 16.0.2 and 17.0.1 all
have the problem...
all versions get slow after a certain quantity of images loaded... (normal? needs to improve)
Thing I observed is:
After lot of images loaded firefox hangs when need to download and render more images... why? (insufficient memory? not my case... I have 16GB)
Comment 7•13 years ago
|
||
(In reply to Leandro from comment #6)
> Thing I observed is:
>
> After lot of images loaded firefox hangs when need to download and render
> more images... why? (insufficient memory? not my case... I have 16GB)
It can be limit of 4GB on process in 32bit app on 64bit system, see your task manager
(In reply to Virtual_ManPL [:Virtual] from comment #7)
> (In reply to Leandro from comment #6)
> > Thing I observed is:
> >
> > After lot of images loaded firefox hangs when need to download and render
> > more images... why? (insufficient memory? not my case... I have 16GB)
>
> It can be limit of 4GB on process in 32bit app on 64bit system, see your
> task manager
Isn't the case firefox inits to slow/hangs after 600mb of memory usage...
Waiting bug 689623 solution... something good will come out of here.
Comment 9•12 years ago
|
||
While testing this on the latest Nightly, I can see indeed that while scrolling down to October images, the process seems pretty slow.
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20121217 Firefox/20.0
Build ID: 20121217030850
Status: UNCONFIRMED → NEW
Ever confirmed: true
Updated•12 years ago
|
Component: Untriaged → Graphics
Product: Firefox → Core
Comment 10•12 years ago
|
||
A profile would be nice so we can find out whether we're doing something silly.
Comment 11•12 years ago
|
||
(In reply to Joe Drew (:JOEDREW! \o/) from comment #10)
> A profile would be nice so we can find out whether we're doing something
> silly.
Do you need the information from about:memory ?
Comment 12•12 years ago
|
||
Sure, that too.
Comment 13•12 years ago
|
||
(In reply to Joe Drew (:JOEDREW! \o/) from comment #12)
> Sure, that too.
Here is my information from about:memory :
Explicit Allocations
405.33 MB (100.0%) -- explicit
├──280.94 MB (69.31%) -- images
│ ├──280.72 MB (69.26%) -- content
│ │ ├──280.72 MB (69.26%) -- used
│ │ │ ├──227.83 MB (56.21%) ── uncompressed-heap
│ │ │ ├───52.89 MB (13.05%) ── raw
│ │ │ └────0.00 MB (00.00%) ── uncompressed-nonheap
│ │ └────0.00 MB (00.00%) ++ unused
│ └────0.22 MB (00.05%) ++ chrome
├───44.30 MB (10.93%) -- js-non-window
│ ├──34.82 MB (08.59%) -- compartments
│ │ ├──29.81 MB (07.35%) -- non-window-global
│ │ │ ├──19.23 MB (04.74%) ++ (180 tiny)
│ │ │ └──10.58 MB (02.61%) -- compartment([System Principal], [anonymous sandbox] (from: resource://testpilot/modules/lib/securable-module.js:95))
│ │ │ ├───6.70 MB (01.65%) -- gc-heap
│ │ │ │ ├──4.79 MB (01.18%) ++ objects
│ │ │ │ └──1.91 MB (00.47%) ++ (5 tiny)
│ │ │ └───3.88 MB (00.96%) ++ (7 tiny)
│ │ └───5.01 MB (01.24%) ++ no-global/compartment(atoms)
│ ├───5.41 MB (01.34%) ++ runtime
│ └───4.07 MB (01.00%) ++ gc-heap
├───33.43 MB (08.25%) -- window-objects
│ ├──22.80 MB (05.63%) -- top(http://mpdrolet.tumblr.com/archive, id=20)/active
│ │ ├──21.43 MB (05.29%) -- window(http://mpdrolet.tumblr.com/archive)
│ │ │ ├──12.82 MB (03.16%) -- js/compartment(http://mpdrolet.tumblr.com/archive)
│ │ │ │ ├───5.44 MB (01.34%) ++ gc-heap
│ │ │ │ ├───4.27 MB (01.05%) ++ string-chars
│ │ │ │ └───3.11 MB (00.77%) ++ (6 tiny)
│ │ │ ├───5.19 MB (01.28%) ++ layout
│ │ │ └───3.41 MB (00.84%) ++ (2 tiny)
│ │ └───1.37 MB (00.34%) ++ (2 tiny)
│ ├───5.11 MB (01.26%) -- top(chrome://browser/content/browser.xul, id=5)/active
│ │ ├──5.05 MB (01.25%) ++ window(chrome://browser/content/browser.xul)
│ │ └──0.06 MB (00.01%) ++ window(about:blank)
│ ├───4.25 MB (01.05%) ++ top(about:memory, id=10)
│ └───1.27 MB (00.31%) ++ (3 tiny)
├───31.23 MB (07.71%) ── heap-unclassified
├────9.49 MB (02.34%) ++ (16 tiny)
└────5.93 MB (01.46%) -- storage
├──5.35 MB (01.32%) ++ sqlite
└──0.58 MB (00.14%) ++ prefixset
Other Measurements
212 (100.0%) -- js-compartments
├──205 (96.70%) ── system
└────7 (03.30%) ── user
66.23 MB (100.0%) -- js-main-runtime
├──56.75 MB (85.68%) -- compartments
│ ├──31.93 MB (48.21%) -- gc-heap
│ │ ├──10.30 MB (15.55%) -- objects
│ │ │ ├───4.31 MB (06.50%) ── dense-array
│ │ │ ├───3.02 MB (04.56%) ── ordinary
│ │ │ ├───2.85 MB (04.30%) ── function
│ │ │ └───0.12 MB (00.19%) ++ (2 tiny)
│ │ ├───9.71 MB (14.67%) ── unused-gc-things
│ │ ├───5.51 MB (08.32%) -- strings
│ │ │ ├──4.12 MB (06.22%) ── normal
│ │ │ └──1.39 MB (02.10%) ── short
│ │ ├───4.45 MB (06.71%) -- shapes
│ │ │ ├──1.80 MB (02.71%) ── dict
│ │ │ ├──1.49 MB (02.24%) -- tree
│ │ │ │ ├──1.21 MB (01.83%) ── global-parented
│ │ │ │ └──0.27 MB (00.41%) ── non-global-parented
│ │ │ └──1.16 MB (01.76%) ── base
│ │ ├───1.59 MB (02.41%) ── scripts
│ │ └───0.36 MB (00.55%) ++ (3 tiny)
│ ├───7.32 MB (11.06%) -- string-chars
│ │ ├──3.84 MB (05.80%) ++ huge
│ │ └──3.48 MB (05.26%) ── non-huge
│ ├───6.04 MB (09.12%) -- objects-extra
│ │ ├──4.02 MB (06.08%) ── elements
│ │ ├──1.80 MB (02.71%) ── slots
│ │ └──0.22 MB (00.33%) ++ (3 tiny)
│ ├───4.28 MB (06.46%) ── script-data
│ ├───3.04 MB (04.59%) -- type-inference
│ │ ├──2.28 MB (03.44%) ── analysis-pool
│ │ └──0.76 MB (01.15%) ++ (3 tiny)
│ ├───2.93 MB (04.42%) -- shapes-extra
│ │ ├──1.91 MB (02.88%) ── compartment-tables
│ │ └──1.02 MB (01.55%) ++ (3 tiny)
│ └───1.21 MB (01.82%) ++ (6 tiny)
├───5.41 MB (08.17%) ── runtime
└───4.07 MB (06.15%) -- gc-heap
├──2.10 MB (03.17%) ── decommitted-arenas
├──1.00 MB (01.51%) ── unused-chunks
└──0.97 MB (01.46%) ++ (2 tiny)
33.90 MB (100.0%) -- js-main-runtime-gc-heap-committed
├──22.76 MB (67.15%) -- used
│ ├──22.04 MB (65.02%) ── gc-things
│ ├───0.55 MB (01.61%) ── chunk-admin
│ └───0.18 MB (00.52%) ── arena-admin
└──11.14 MB (32.85%) -- unused
├───9.71 MB (28.66%) ── gc-things
├───1.00 MB (02.95%) ── chunks
└───0.42 MB (01.24%) ── arenas
0 (100.0%) -- low-memory-events
├──0 (100.0%) ── physical
└──0 (100.0%) ── virtual
11.50 MB (100.0%) -- window-objects
├───6.94 MB (60.32%) -- layout
│ ├──1.88 MB (16.36%) ── pres-shell
│ ├──1.74 MB (15.17%) ── style-contexts
│ ├──1.32 MB (11.44%) ── frames
│ ├──0.98 MB (08.51%) ── style-sets
│ ├──0.33 MB (02.86%) ── text-runs
│ ├──0.26 MB (02.22%) ── line-boxes
│ ├──0.25 MB (02.19%) ── pres-contexts
│ └──0.18 MB (01.58%) ── rule-nodes
├───3.94 MB (34.23%) -- dom
│ ├──2.20 MB (19.13%) ── element-nodes
│ ├──1.31 MB (11.40%) ── text-nodes
│ ├──0.40 MB (03.50%) ── other
│ └──0.02 MB (00.20%) ++ (3 tiny)
├───0.63 MB (05.45%) ── style-sheets
└───0.00 MB (00.01%) ── property-tables
0.00 MB ── canvas-2d-pixel-bytes
405.25 MB ── explicit
95.28 MB ── gfx-d2d-surfacecache
4.01 MB ── gfx-d2d-surfacevram
10.26 MB ── gfx-d2d-vram-drawtarget
134.44 MB ── gfx-d2d-vram-sourcesurface
224.47 MB ── gfx-surface-image
0.00 MB ── gfx-textures
0 ── ghost-windows
367.26 MB ── heap-allocated
370.36 MB ── heap-committed
3.06 MB ── heap-committed-unused
0.83% ── heap-committed-unused-ratio
0.15 MB ── heap-dirty
6.71 MB ── heap-unused
227.83 MB ── images-content-used-uncompressed
36.00 MB ── js-gc-heap
0 ── low-commit-space-events
482.18 MB ── private
502.98 MB ── resident
5.36 MB ── storage-sqlite
807.88 MB ── vsize
Let me know if there is something else I can help with.
Comment 14•12 years ago
|
||
(In reply to Manuela Muntean from comment #13)
> (In reply to Joe Drew (:JOEDREW! \o/) from comment #12)
> > Sure, that too.
>
Manuela, please follow the instructions here: https://developer.mozilla.org/en-US/docs/Performance/Profiling_with_the_Built-in_Profiler to get Joe a profile that will help him diagnose the issue.
Comment 15•12 years ago
|
||
Comment 16•12 years ago
|
||
(In reply to Manoj from comment #14)
> (In reply to Manuela Muntean from comment #13)
> > (In reply to Joe Drew (:JOEDREW! \o/) from comment #12)
> > > Sure, that too.
> >
> Manuela, please follow the instructions here:
> https://developer.mozilla.org/en-US/docs/Performance/
> Profiling_with_the_Built-in_Profiler to get Joe a profile that will help him
> diagnose the issue.
Thank you Manoj and Tom for the help! I tried to get a profile, but Nightly kept on becoming unresponsive and I was unsuccessful.
![]() |
||
Comment 17•12 years ago
|
||
Bug 689623 will probably fix the memory consumption aspect.
Off-thread image decoding might help with the lag.
Whiteboard: [MemShrink] → [Snappy]
![]() |
||
Comment 18•12 years ago
|
||
FWIW, on http://mpdrolet.tumblr.com/archive/2012/10 scrolled down to Oct 15th Pics I get
Pre Bug 689623:
192.32 MB ── images-content-used-uncompressed
Post Bug 689623:
53.65 MB ── images-content-used-uncompressed
=> Nice :-)
![]() |
||
Comment 19•12 years ago
|
||
I see similar numbers. Enough to declare victory, IMO.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•