Closed Bug 820113 Opened 13 years ago Closed 12 years ago

Slow and spikes after load lot of images

Categories

(Core :: Graphics, defect)

17 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: leandrocostabh, Unassigned)

References

Details

(Whiteboard: [Snappy])

Attachments

(1 file)

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.
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)
Depends on: 689623
Whiteboard: [MemShrink]
(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.
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
Component: Untriaged → Graphics
Product: Firefox → Core
Whiteboard: [MemShrink]
A profile would be nice so we can find out whether we're doing something silly.
(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 ?
Sure, that too.
(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.
(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.
(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.
Bug 689623 will probably fix the memory consumption aspect. Off-thread image decoding might help with the lag.
Whiteboard: [MemShrink] → [Snappy]
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 :-)
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.

Attachment

General

Creator:
Created:
Updated:
Size: