Closed Bug 694942 Opened 13 years ago Closed 12 years ago

Zombie compartments and immortal uncompressed image data, likely due to add-ons

Categories

(Firefox :: General, defect)

7 Branch
x86
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: dziastinux, Unassigned)

Details

(Whiteboard: [MemShrink:P3])

User Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Build ID: 20110928134238

Steps to reproduce:

I browsed for a while (hour or two) mainly in 2 sites:
 1. en.wikipedia.org;
 2. www.autogidas.lt.




Actual results:

I spotted high memory usage  (~1,2GB) and remembered that FF7 came out with new memory manager so I decided to test it, so opened about:memory and several times presses "Minimize memory usage". Memory usage decreased ~20MB. I also tried closing all tabs (except bugzilla and about:memory) and pressing "Minimize memory usage" five more times but nothing happened.


Expected results:

Memory usage should have been reduced to normal (200-500MB).
about:memory

1,077,327,754 B (100.0%) -- explicit
├────375,059,255 B (34.81%) -- images
│    ├──374,667,623 B (34.78%) -- content
│    │  ├──374,667,623 B (34.78%) -- used
│    │  │  ├──358,568,476 B (33.28%) -- uncompressed
│    │  │  └───16,099,147 B (01.49%) -- raw
│    │  └────────────0 B (00.00%) -- unused
│    │               ├──0 B (00.00%) -- raw
│    │               └──0 B (00.00%) -- uncompressed
│    └──────391,632 B (00.04%) -- chrome
│           ├──391,632 B (00.04%) -- used
│           │  ├──391,632 B (00.04%) -- uncompressed
│           │  └────────0 B (00.00%) -- raw
│           └────────0 B (00.00%) -- unused
│                    ├──0 B (00.00%) -- raw
│                    └──0 B (00.00%) -- uncompressed
├────371,279,786 B (34.46%) -- js
│    ├──222,201,813 B (20.63%) -- compartment([System Principal])
│    │  ├──108,486,656 B (10.07%) -- gc-heap
│    │  │  ├───75,852,216 B (07.04%) -- objects
│    │  │  ├───20,527,560 B (01.91%) -- shapes
│    │  │  ├────6,108,176 B (00.57%) -- arena-unused
│    │  │  ├────5,006,048 B (00.46%) -- strings
│    │  │  ├──────565,064 B (00.05%) -- arena-padding
│    │  │  ├──────423,776 B (00.04%) -- arena-headers
│    │  │  └────────3,816 B (00.00%) -- xml
│    │  ├───57,154,767 B (05.31%) -- scripts
│    │  ├───29,491,200 B (02.74%) -- mjit-code
│    │  ├───21,172,056 B (01.97%) -- object-slots
│    │  ├────3,130,770 B (00.29%) -- string-chars
│    │  ├────1,441,508 B (00.13%) -- mjit-data
│    │  ├────1,193,784 B (00.11%) -- tjit-data
│    │  │    ├────814,000 B (00.08%) -- allocators-reserve
│    │  │    └────379,784 B (00.04%) -- allocators-main
│    │  └──────131,072 B (00.01%) -- tjit-code
│    ├───60,201,886 B (05.59%) -- compartment(http://www.autogidas.lt/lengvieji-automobiliai/7-psl/?f_1%5B%5D=&f_model_14%5B%5D=--------&f_41=1998&f_42=&f_215=&f_216=10000&f_61=&f_62=&f_63=&f_64=&f_65=&f_66=&f_2=Dyzelinas&f_265=Kair%C4%97je&f_3=Sedanas&f_4=&f_10=Mechanin%C4%97&f_5=&f_104=&f_8=&f_245=Lietuva&f_13=&f_46=Visus&f_60=728&a_5=1&search=Surasti)
│    │   ├──28,573,696 B (02.65%) -- gc-heap
│    │   │  ├──18,964,664 B (01.76%) -- objects
│    │   │  ├───7,529,440 B (00.70%) -- shapes
│    │   │  ├───1,501,744 B (00.14%) -- arena-unused
│    │   │  ├─────354,720 B (00.03%) -- strings
│    │   │  ├─────111,616 B (00.01%) -- arena-headers
│    │   │  ├─────111,512 B (00.01%) -- arena-padding
│    │   │  └───────────0 B (00.00%) -- xml
│    │   ├──14,958,178 B (01.39%) -- scripts
│    │   ├──13,107,200 B (01.22%) -- mjit-code
│    │   ├───2,528,288 B (00.23%) -- object-slots
│    │   ├─────757,904 B (00.07%) -- string-chars
│    │   ├─────131,072 B (00.01%) -- tjit-code
│    │   ├─────127,328 B (00.01%) -- tjit-data
│    │   │     ├───74,000 B (00.01%) -- allocators-reserve
│    │   │     └───53,328 B (00.00%) -- allocators-main
│    │   └──────18,220 B (00.00%) -- mjit-data
│    ├───19,817,856 B (01.84%) -- gc-heap-chunk-unused
│    ├───15,203,816 B (01.41%) -- compartment(http://www.facebook.com/plugins/like.php?href=http://www.autogidas.lt/mercedes-benz-e-220-sedanas-1998-0122330746.html&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font&height=21&locale=en_US)
│    │   ├───7,086,080 B (00.66%) -- gc-heap
│    │   │   ├──3,536,544 B (00.33%) -- objects
│    │   │   ├──2,996,280 B (00.28%) -- shapes
│    │   │   ├────513,696 B (00.05%) -- arena-unused
│    │   │   ├─────27,680 B (00.00%) -- arena-headers
│    │   │   ├──────7,656 B (00.00%) -- arena-padding
│    │   │   ├──────4,224 B (00.00%) -- strings
│    │   │   └──────────0 B (00.00%) -- xml
│    │   ├───6,160,384 B (00.57%) -- mjit-code
│    │   ├───1,108,800 B (00.10%) -- scripts
│    │   ├─────571,136 B (00.05%) -- object-slots
│    │   ├─────137,368 B (00.01%) -- tjit-data
│    │   │     ├───74,000 B (00.01%) -- allocators-reserve
│    │   │     └───63,368 B (00.01%) -- allocators-main
│    │   ├─────131,072 B (00.01%) -- tjit-code
│    │   ├───────8,976 B (00.00%) -- string-chars
│    │   └───────────0 B (00.00%) -- mjit-data
│    ├───15,011,432 B (01.39%) -- compartment(http://en.wikipedia.org/wiki/BMW_5_Series)
│    │   ├───8,634,368 B (00.80%) -- gc-heap
│    │   │   ├──4,387,832 B (00.41%) -- arena-unused
│    │   │   ├──2,870,336 B (00.27%) -- objects
│    │   │   ├──1,240,600 B (00.12%) -- shapes
│    │   │   ├─────61,712 B (00.01%) -- strings
│    │   │   ├─────40,160 B (00.00%) -- arena-padding
│    │   │   ├─────33,728 B (00.00%) -- arena-headers
│    │   │   └──────────0 B (00.00%) -- xml
│    │   ├───2,883,584 B (00.27%) -- mjit-code
│    │   ├───2,665,870 B (00.25%) -- scripts
│    │   ├─────455,544 B (00.04%) -- object-slots
│    │   ├─────157,448 B (00.01%) -- tjit-data
│    │   │     ├───83,448 B (00.01%) -- allocators-main
│    │   │     └───74,000 B (00.01%) -- allocators-reserve
│    │   ├─────131,072 B (00.01%) -- tjit-code
│    │   ├──────83,546 B (00.01%) -- string-chars
│    │   └───────────0 B (00.00%) -- mjit-data
│    ├───13,511,314 B (01.25%) -- compartment(http://ads.skelbiu.lt/www/delivery/afr.php?zoneid=349&cb=37223613040)
│    │   ├──11,972,608 B (01.11%) -- gc-heap
│    │   │  ├───5,843,768 B (00.54%) -- objects
│    │   │  ├───5,335,400 B (00.50%) -- shapes
│    │   │  ├─────742,400 B (00.07%) -- arena-unused
│    │   │  ├──────46,768 B (00.00%) -- arena-headers
│    │   │  ├───────4,272 B (00.00%) -- arena-padding
│    │   │  ├───────────0 B (00.00%) -- strings
│    │   │  └───────────0 B (00.00%) -- xml
│    │   ├───1,132,608 B (00.11%) -- object-slots
│    │   ├─────262,144 B (00.02%) -- mjit-code
│    │   ├─────103,232 B (00.01%) -- tjit-data
│    │   │     ├───74,000 B (00.01%) -- allocators-reserve
│    │   │     └───29,232 B (00.00%) -- allocators-main
│    │   ├──────40,722 B (00.00%) -- scripts
│    │   ├───────────0 B (00.00%) -- string-chars
│    │   ├───────────0 B (00.00%) -- mjit-data
│    │   └───────────0 B (00.00%) -- tjit-code
│    ├────4,334,484 B (00.40%) -- compartment(atoms)
│    │    ├──2,679,700 B (00.25%) -- string-chars
│    │    ├──1,654,784 B (00.15%) -- gc-heap
│    │    │  ├──1,142,224 B (00.11%) -- strings
│    │    │  ├────503,152 B (00.05%) -- arena-unused
│    │    │  ├──────6,464 B (00.00%) -- arena-headers
│    │    │  ├──────2,944 B (00.00%) -- arena-padding
│    │    │  ├──────────0 B (00.00%) -- objects
│    │    │  ├──────────0 B (00.00%) -- shapes
│    │    │  └──────────0 B (00.00%) -- xml
│    │    ├──────────0 B (00.00%) -- object-slots
│    │    ├──────────0 B (00.00%) -- scripts
│    │    ├──────────0 B (00.00%) -- mjit-code
│    │    ├──────────0 B (00.00%) -- mjit-data
│    │    ├──────────0 B (00.00%) -- tjit-code
│    │    └──────────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    ├────3,765,728 B (00.35%) -- compartment(http://www.diena.lt/lt/infoblock/11)
│    │    ├──1,605,632 B (00.15%) -- gc-heap
│    │    │  ├──1,011,360 B (00.09%) -- objects
│    │    │  ├────440,280 B (00.04%) -- shapes
│    │    │  ├────113,272 B (00.01%) -- arena-unused
│    │    │  ├─────29,568 B (00.00%) -- strings
│    │    │  ├──────6,272 B (00.00%) -- arena-headers
│    │    │  ├──────4,880 B (00.00%) -- arena-padding
│    │    │  └──────────0 B (00.00%) -- xml
│    │    ├──1,093,920 B (00.10%) -- scripts
│    │    ├────589,824 B (00.05%) -- mjit-code
│    │    ├────175,520 B (00.02%) -- tjit-data
│    │    │    ├──101,520 B (00.01%) -- allocators-main
│    │    │    └───74,000 B (00.01%) -- allocators-reserve
│    │    ├────131,072 B (00.01%) -- tjit-code
│    │    ├────108,640 B (00.01%) -- object-slots
│    │    ├─────61,120 B (00.01%) -- string-chars
│    │    └──────────0 B (00.00%) -- mjit-data
│    ├────3,246,720 B (00.30%) -- gc-heap-chunk-admin
│    ├────2,698,692 B (00.25%) -- compartment(https://plusone.google.com/u/0/_/+1/fastbutton?url=http%3A%2F%2Fwww.autogidas.lt%2Fmercedes-benz-e-220-sedanas-1998-0122330746.html&size=medium&count=false&annotation=&hl=en-US&jsh=r%3Bgc%2F24479126-6666cb8c#id=I1_1318840189361&parent=http%3A%2F%2Fwww.autogidas.lt&rpctoken=379150944&_methods=onPlusOne%2C_ready%2C_close%2C_open%2C_resizeMe)
│    │    ├──2,035,712 B (00.19%) -- gc-heap
│    │    │  ├──1,061,280 B (00.10%) -- shapes
│    │    │  ├────772,296 B (00.07%) -- objects
│    │    │  ├────193,224 B (00.02%) -- arena-unused
│    │    │  ├──────7,952 B (00.00%) -- arena-headers
│    │    │  ├────────960 B (00.00%) -- arena-padding
│    │    │  ├──────────0 B (00.00%) -- strings
│    │    │  └──────────0 B (00.00%) -- xml
│    │    ├────327,680 B (00.03%) -- mjit-code
│    │    ├────236,224 B (00.02%) -- object-slots
│    │    ├─────95,200 B (00.01%) -- tjit-data
│    │    │     ├──74,000 B (00.01%) -- allocators-reserve
│    │    │     └──21,200 B (00.00%) -- allocators-main
│    │    ├──────3,876 B (00.00%) -- scripts
│    │    ├──────────0 B (00.00%) -- string-chars
│    │    ├──────────0 B (00.00%) -- mjit-data
│    │    └──────────0 B (00.00%) -- tjit-code
│    ├────2,564,352 B (00.24%) -- compartment(http://www.google.lt/search?q=mozilla+bugs&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a)
│    │    ├──1,265,664 B (00.12%) -- gc-heap
│    │    │  ├────539,072 B (00.05%) -- arena-unused
│    │    │  ├────455,512 B (00.04%) -- objects
│    │    │  ├────256,760 B (00.02%) -- shapes
│    │    │  ├──────5,040 B (00.00%) -- strings
│    │    │  ├──────4,944 B (00.00%) -- arena-headers
│    │    │  ├──────4,336 B (00.00%) -- arena-padding
│    │    │  └──────────0 B (00.00%) -- xml
│    │    ├────589,346 B (00.05%) -- scripts
│    │    ├────458,752 B (00.04%) -- mjit-code
│    │    ├─────97,208 B (00.01%) -- tjit-data
│    │    │     ├──74,000 B (00.01%) -- allocators-reserve
│    │    │     └──23,208 B (00.00%) -- allocators-main
│    │    ├─────88,532 B (00.01%) -- mjit-data
│    │    ├─────60,344 B (00.01%) -- object-slots
│    │    ├──────4,506 B (00.00%) -- string-chars
│    │    └──────────0 B (00.00%) -- tjit-code
│    ├────1,999,922 B (00.19%) -- compartment(https://bugzilla.mozilla.org/)
│    │    ├──1,052,672 B (00.10%) -- gc-heap
│    │    │  ├────439,712 B (00.04%) -- objects
│    │    │  ├────403,960 B (00.04%) -- shapes
│    │    │  ├────200,376 B (00.02%) -- arena-unused
│    │    │  ├──────4,112 B (00.00%) -- arena-headers
│    │    │  ├──────2,336 B (00.00%) -- arena-padding
│    │    │  ├──────2,176 B (00.00%) -- strings
│    │    │  └──────────0 B (00.00%) -- xml
│    │    ├────489,832 B (00.05%) -- scripts
│    │    ├────131,072 B (00.01%) -- mjit-code
│    │    ├────131,072 B (00.01%) -- tjit-code
│    │    ├────125,320 B (00.01%) -- tjit-data
│    │    │    ├───74,000 B (00.01%) -- allocators-reserve
│    │    │    └───51,320 B (00.00%) -- allocators-main
│    │    ├─────65,104 B (00.01%) -- object-slots
│    │    ├──────3,170 B (00.00%) -- string-chars
│    │    └──────1,680 B (00.00%) -- mjit-data
│    ├────1,852,069 B (00.17%) -- compartment(https://mail.google.com/mail/?ui=2&shva=1#inbox)
│    │    ├────897,024 B (00.08%) -- gc-heap
│    │    │    ├──615,728 B (00.06%) -- arena-unused
│    │    │    ├──244,000 B (00.02%) -- shapes
│    │    │    ├───32,856 B (00.00%) -- objects
│    │    │    ├────3,504 B (00.00%) -- arena-headers
│    │    │    ├──────936 B (00.00%) -- arena-padding
│    │    │    ├────────0 B (00.00%) -- strings
│    │    │    └────────0 B (00.00%) -- xml
│    │    ├────655,360 B (00.06%) -- mjit-code
│    │    ├────217,688 B (00.02%) -- tjit-data
│    │    │    ├──143,688 B (00.01%) -- allocators-main
│    │    │    └───74,000 B (00.01%) -- allocators-reserve
│    │    ├─────69,944 B (00.01%) -- object-slots
│    │    ├──────7,593 B (00.00%) -- scripts
│    │    ├──────4,460 B (00.00%) -- mjit-data
│    │    ├──────────0 B (00.00%) -- string-chars
│    │    └──────────0 B (00.00%) -- tjit-code
│    ├────1,253,904 B (00.12%) -- compartment(http://ads.kartu.lt/980x200.php?source=autogidas.lt)
│    │    ├────622,592 B (00.06%) -- gc-heap
│    │    │    ├──264,760 B (00.02%) -- arena-unused
│    │    │    ├──185,088 B (00.02%) -- objects
│    │    │    ├──169,640 B (00.02%) -- shapes
│    │    │    ├────2,432 B (00.00%) -- arena-headers
│    │    │    ├──────672 B (00.00%) -- arena-padding
│    │    │    ├────────0 B (00.00%) -- strings
│    │    │    └────────0 B (00.00%) -- xml
│    │    ├────327,680 B (00.03%) -- mjit-code
│    │    ├────135,360 B (00.01%) -- tjit-data
│    │    │    ├───74,000 B (00.01%) -- allocators-reserve
│    │    │    └───61,360 B (00.01%) -- allocators-main
│    │    ├────131,072 B (00.01%) -- tjit-code
│    │    ├─────36,288 B (00.00%) -- object-slots
│    │    ├────────912 B (00.00%) -- scripts
│    │    ├──────────0 B (00.00%) -- string-chars
│    │    └──────────0 B (00.00%) -- mjit-data
│    ├──────677,096 B (00.06%) -- compartment(http://anet.tradedoubler.com/anet?type(iframe)loc(87251)271838434)
│    │      ├──622,592 B (00.06%) -- gc-heap
│    │      │  ├──268,728 B (00.02%) -- objects
│    │      │  ├──248,920 B (00.02%) -- shapes
│    │      │  ├──102,224 B (00.01%) -- arena-unused
│    │      │  ├────2,432 B (00.00%) -- arena-headers
│    │      │  ├──────288 B (00.00%) -- arena-padding
│    │      │  ├────────0 B (00.00%) -- strings
│    │      │  └────────0 B (00.00%) -- xml
│    │      ├───53,136 B (00.00%) -- object-slots
│    │      ├────1,368 B (00.00%) -- scripts
│    │      ├────────0 B (00.00%) -- string-chars
│    │      ├────────0 B (00.00%) -- mjit-code
│    │      ├────────0 B (00.00%) -- mjit-data
│    │      ├────────0 B (00.00%) -- tjit-code
│    │      └────────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    ├──────522,816 B (00.05%) -- compartment(http://www.spritmonitor.de/en/)
│    │      ├──376,832 B (00.03%) -- gc-heap
│    │      │  ├──227,856 B (00.02%) -- arena-unused
│    │      │  ├───75,320 B (00.01%) -- objects
│    │      │  ├───71,560 B (00.01%) -- shapes
│    │      │  ├────1,472 B (00.00%) -- arena-headers
│    │      │  ├──────624 B (00.00%) -- arena-padding
│    │      │  ├────────0 B (00.00%) -- strings
│    │      │  └────────0 B (00.00%) -- xml
│    │      ├──131,072 B (00.01%) -- mjit-code
│    │      ├───13,816 B (00.00%) -- object-slots
│    │      ├────1,096 B (00.00%) -- scripts
│    │      ├────────0 B (00.00%) -- string-chars
│    │      ├────────0 B (00.00%) -- mjit-data
│    │      ├────────0 B (00.00%) -- tjit-code
│    │      └────────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    ├──────384,341 B (00.04%) -- compartment(about:blank)
│    │      ├──352,256 B (00.03%) -- gc-heap
│    │      │  ├──147,240 B (00.01%) -- arena-unused
│    │      │  ├──103,000 B (00.01%) -- objects
│    │      │  ├───99,920 B (00.01%) -- shapes
│    │      │  ├────1,376 B (00.00%) -- arena-headers
│    │      │  ├──────720 B (00.00%) -- arena-padding
│    │      │  ├────────0 B (00.00%) -- strings
│    │      │  └────────0 B (00.00%) -- xml
│    │      ├───30,976 B (00.00%) -- object-slots
│    │      ├────1,109 B (00.00%) -- scripts
│    │      ├────────0 B (00.00%) -- string-chars
│    │      ├────────0 B (00.00%) -- mjit-code
│    │      ├────────0 B (00.00%) -- mjit-data
│    │      ├────────0 B (00.00%) -- tjit-code
│    │      └────────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    ├──────262,144 B (00.02%) -- stack
│    ├──────254,774 B (00.02%) -- compartment(http://ads.draugas.lt/ads/pazintys_980x200.cfm?svetaine=skelbiu)
│    │      ├──241,664 B (00.02%) -- gc-heap
│    │      │  ├──107,480 B (00.01%) -- arena-unused
│    │      │  ├───71,640 B (00.01%) -- objects
│    │      │  ├───61,360 B (00.01%) -- shapes
│    │      │  ├──────944 B (00.00%) -- arena-headers
│    │      │  ├──────240 B (00.00%) -- arena-padding
│    │      │  ├────────0 B (00.00%) -- strings
│    │      │  └────────0 B (00.00%) -- xml
│    │      ├───12,768 B (00.00%) -- object-slots
│    │      ├──────342 B (00.00%) -- scripts
│    │      ├────────0 B (00.00%) -- string-chars
│    │      ├────────0 B (00.00%) -- mjit-code
│    │      ├────────0 B (00.00%) -- mjit-data
│    │      ├────────0 B (00.00%) -- tjit-code
│    │      └────────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    ├──────169,330 B (00.02%) -- compartment(null-principal)
│    │      ├───94,208 B (00.01%) -- gc-heap
│    │      │   ├──38,640 B (00.00%) -- arena-unused
│    │      │   ├──31,264 B (00.00%) -- objects
│    │      │   ├──23,600 B (00.00%) -- shapes
│    │      │   ├─────368 B (00.00%) -- arena-headers
│    │      │   ├─────264 B (00.00%) -- arena-padding
│    │      │   ├──────72 B (00.00%) -- xml
│    │      │   └───────0 B (00.00%) -- strings
│    │      ├───65,536 B (00.01%) -- mjit-code
│    │      ├────9,472 B (00.00%) -- object-slots
│    │      ├──────114 B (00.00%) -- scripts
│    │      ├────────0 B (00.00%) -- string-chars
│    │      ├────────0 B (00.00%) -- mjit-data
│    │      ├────────0 B (00.00%) -- tjit-code
│    │      └────────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    ├───────58,228 B (00.01%) -- compartment(http://photos.autogidas.lt/s/photos/20110328/01_vb_21106890_12530470.jpg)
│    │       ├──53,248 B (00.00%) -- gc-heap
│    │       │  ├──32,440 B (00.00%) -- arena-unused
│    │       │  ├──11,896 B (00.00%) -- objects
│    │       │  ├───8,560 B (00.00%) -- shapes
│    │       │  ├─────208 B (00.00%) -- arena-headers
│    │       │  ├─────144 B (00.00%) -- arena-padding
│    │       │  ├───────0 B (00.00%) -- strings
│    │       │  └───────0 B (00.00%) -- xml
│    │       ├───4,752 B (00.00%) -- object-slots
│    │       ├─────228 B (00.00%) -- scripts
│    │       ├───────0 B (00.00%) -- string-chars
│    │       ├───────0 B (00.00%) -- mjit-code
│    │       ├───────0 B (00.00%) -- mjit-data
│    │       ├───────0 B (00.00%) -- tjit-code
│    │       └───────0 B (00.00%) -- tjit-data
│    │               ├──0 B (00.00%) -- allocators-main
│    │               └──0 B (00.00%) -- allocators-reserve
│    └───────22,962 B (00.00%) -- compartment(moz-nullprincipal:{21adedfd-44fa-49d9-b966-ce56ac7b9eaa})
│            ├──20,480 B (00.00%) -- gc-heap
│            │  ├──15,040 B (00.00%) -- arena-unused
│            │  ├───3,192 B (00.00%) -- objects
│            │  ├───2,120 B (00.00%) -- shapes
│            │  ├──────80 B (00.00%) -- arena-headers
│            │  ├──────48 B (00.00%) -- arena-padding
│            │  ├───────0 B (00.00%) -- strings
│            │  └───────0 B (00.00%) -- xml
│            ├───2,368 B (00.00%) -- object-slots
│            ├─────114 B (00.00%) -- scripts
│            ├───────0 B (00.00%) -- string-chars
│            ├───────0 B (00.00%) -- mjit-code
│            ├───────0 B (00.00%) -- mjit-data
│            ├───────0 B (00.00%) -- tjit-code
│            └───────0 B (00.00%) -- tjit-data
│                    ├──0 B (00.00%) -- allocators-main
│                    └──0 B (00.00%) -- allocators-reserve
├────289,294,736 B (26.85%) -- heap-unclassified
├─────38,923,632 B (03.61%) -- storage
│     └──38,923,632 B (03.61%) -- sqlite
│        ├──21,558,440 B (02.00%) -- places.sqlite
│        │  ├──21,291,336 B (01.98%) -- cache-used
│        │  ├─────218,584 B (00.02%) -- stmt-used
│        │  └──────48,520 B (00.00%) -- schema-used
│        ├──12,689,904 B (01.18%) -- urlclassifier3.sqlite
│        │  ├──12,602,744 B (01.17%) -- cache-used
│        │  ├──────84,496 B (00.01%) -- stmt-used
│        │  └───────2,664 B (00.00%) -- schema-used
│        ├───1,229,944 B (00.11%) -- cookies.sqlite
│        │   ├──1,217,944 B (00.11%) -- cache-used
│        │   ├─────10,160 B (00.00%) -- stmt-used
│        │   └──────1,840 B (00.00%) -- schema-used
│        ├─────957,736 B (00.09%) -- other
│        ├─────492,040 B (00.05%) -- formhistory.sqlite
│        │     ├──461,168 B (00.04%) -- cache-used
│        │     ├───29,192 B (00.00%) -- stmt-used
│        │     └────1,680 B (00.00%) -- schema-used
│        ├─────388,664 B (00.04%) -- extensions.sqlite
│        │     ├──329,544 B (00.03%) -- cache-used
│        │     ├───52,224 B (00.00%) -- stmt-used
│        │     └────6,896 B (00.00%) -- schema-used
│        ├─────356,312 B (00.03%) -- webappsstore.sqlite
│        │     ├──296,880 B (00.03%) -- cache-used
│        │     ├───55,480 B (00.01%) -- stmt-used
│        │     └────3,952 B (00.00%) -- schema-used
│        ├─────264,248 B (00.02%) -- addons.sqlite
│        │     ├──230,824 B (00.02%) -- cache-used
│        │     ├───29,152 B (00.00%) -- stmt-used
│        │     └────4,272 B (00.00%) -- schema-used
│        ├─────257,608 B (00.02%) -- chromeappsstore.sqlite
│        │     ├──198,176 B (00.02%) -- cache-used
│        │     ├───55,480 B (00.01%) -- stmt-used
│        │     └────3,952 B (00.00%) -- schema-used
│        ├─────205,952 B (00.02%) -- downloads.sqlite
│        │     ├──197,928 B (00.02%) -- cache-used
│        │     ├────6,024 B (00.00%) -- stmt-used
│        │     └────2,000 B (00.00%) -- schema-used
│        ├─────175,568 B (00.02%) -- content-prefs.sqlite
│        │     ├──165,040 B (00.02%) -- cache-used
│        │     ├────8,128 B (00.00%) -- stmt-used
│        │     └────2,400 B (00.00%) -- schema-used
│        ├─────138,728 B (00.01%) -- signons.sqlite
│        │     ├──132,112 B (00.01%) -- cache-used
│        │     ├────3,784 B (00.00%) -- stmt-used
│        │     └────2,832 B (00.00%) -- schema-used
│        ├─────106,232 B (00.01%) -- permissions.sqlite
│        │     ├───99,224 B (00.01%) -- cache-used
│        │     ├────5,744 B (00.00%) -- stmt-used
│        │     └────1,264 B (00.00%) -- schema-used
│        └─────102,256 B (00.01%) -- search.sqlite
│              ├───99,208 B (00.01%) -- cache-used
│              ├────1,840 B (00.00%) -- stmt-used
│              └────1,208 B (00.00%) -- schema-used
├──────1,858,841 B (00.17%) -- layout
│      ├──1,858,841 B (00.17%) -- all
│      └──────────0 B (00.00%) -- bidi
└────────911,504 B (00.08%) -- xpti-working-set

Other Measurements
1,691,492,352 B -- vsize
1,208,016,896 B -- private
1,175,498,752 B -- resident
1,078,910,976 B -- heap-committed
1,021,097,866 B -- heap-used
  359,274,940 B -- gfx-surface-image
  354,771,332 B -- gfx-d2d-surfacecache
  221,464,084 B -- heap-unused
  199,229,440 B -- js-gc-heap
   12,325,280 B -- gfx-d2d-surfacevram
    2,346,408 B -- canvas-2d-pixel-bytes
    2,310,144 B -- heap-dirty
      770,048 B -- shmem-allocated
      770,048 B -- shmem-mapped
            0 B -- gfx-surface-win32
So there are 2 problems:
 1. Why uncompressed image data is NOT removed from the memory when tab is closed?
 2. Why JS compartments are NOT removed after tab closed?
 3. What is stored in System Principal compartment and why it is NOT cleaned?
This probably has to do with extensions you were using.  Although I'm impressed that an extension manages to keep uncompressed images around (explicit/images/content/used/uncompressed); this should go to 0 when you click minimize memory usage.

If you can reproduce any of this without extensions installed, we'd definitely investigate.  Otherwise, you may want to try to figure out which extension is causing problems and contact that extension author.

You have a bunch of zombie compartments here; maybe compartments are never getting cleaned up?  This should make it pretty easy to find which extension to blame.
Yes, can you list your extensions?  And can you reproduce the problem if you restart in safe mode?  (See http://support.mozilla.com/en-US/kb/Safe%20Mode)
Whiteboard: [MemShrink]
Do you mind if I preemptively mark this as MemShrink:P3, on the assumption that extensions are to blame?  We can retriage if that's not the case.
Whiteboard: [MemShrink] → [MemShrink:P3]
Summary: Firefox is unable to free memory (after closing all tabs) → Zombie compartments and immortal uncompressed image data, likely due to add-ons
I can confirm that disabling all addons fix the problem.
I need some time, to find which addon caused this bug.
Here is my current extension list (last two are disable for debugging purposes):
BetterPrivacy       1.67        true
BlockSite           0.7.1.1     true
ColorZilla          2.6.2       true
Download Statusbar  0.9.8       true
Firebug             1.8.3       true
Page Speed          1.12.0.1    true
Xmarks              4.0.3       true
Java Console        7.0         false
Skype Click to Call 5.6.0.8312  false
Collusion           0.14        false

Here is another interesting scenario (always reproducible):
 1. Open several tabs with random URLs;
 2. Open maps.google.com;
 3. Move map until memory usage reaches ~1GB;
 4. Save about:memory image usage:
 5. Press "Minimize memory usage" or switch to another tab and wait for a while;
 6. Save about: memory result;
 7. Return to maps.google.com tab and save about:memory.

Step 4:
├──577,239,355 B (63.19%) -- images
│  ├──576,720,531 B (63.14%) -- content
│  │  ├──576,453,920 B (63.11%) -- used
│  │  │  ├──551,648,532 B (60.39%) -- uncompressed
│  │  │  └───24,805,388 B (02.72%) -- raw


Step 6:
├───25,374,296 B (07.98%) -- images
│   ├──24,855,472 B (07.82%) -- content
│   │  ├──24,855,472 B (07.82%) -- used
│   │  │  ├──24,805,388 B (07.80%) -- raw
│   │  │  └──────50,084 B (00.02%) -- uncompressed


Step 7:
├──576,988,192 B (66.19%) -- images
│  ├──576,469,368 B (66.13%) -- content
│  │  ├──576,469,368 B (66.13%) -- used
│  │  │  ├──551,663,980 B (63.28%) -- uncompressed

It seems that uncompressed image data is restored from swap. Is this correct behavior? Shouldn't GC free memory?
(In reply to Justin Lebar [:jlebar] from comment #3)
> You have a bunch of zombie compartments here; maybe compartments are never
> getting cleaned up?  This should make it pretty easy to find which extension
> to blame.

He uses FF 7. I think many zombie compartments are only getting fixed in later versions.
(In reply to dziastinux from comment #7)
> It seems that uncompressed image data is restored from swap. Is this correct
> behavior? Shouldn't GC free memory?

The images are decompressed again from the 'raw' memory storage when they are needed (when you switch to the map tab).
On maps.google.com in my resolution I see ~30 images, so please tell me how 30 256x256 images can use 500MB memory? The problem is that after switching tab it restores ALL images ever used in that tab. In this way I FF can eat up all memory and force OS to swap. How can this be desired behavior?
There is 24MB worth of images (probably JPGs). They can use much when decompressed (4 bytes per pixel). See in Page Info, if there really are only 30 of them of the resolution you say.
Also, Firefox may hold on images (and decompress them) that are not in view (e.g. hidden by script), but are part of the active tab. See bug 683284 and its dependencies.
Nope, its png. Please explain me, why after closing the tab with 500mb uncompressed image data and opening a new maps.google.com tab about:memory reports:

├───18.94 MB (09.87%) -- images
│   ├──18.57 MB (09.68%) -- content
│   │  ├──18.55 MB (09.67%) -- used
│   │  │  ├──17.25 MB (08.99%) -- uncompressed
│   │  │  └───1.31 MB (00.68%) -- raw

I haven't pressed "Minimize memory usage" or "GC+CC" or "GC" buttons.

Then I change zoom once an I get this:
├───31.68 MB (13.71%) -- images
│   ├──31.31 MB (13.55%) -- content
│   │  ├──31.31 MB (13.55%) -- used
│   │  │  ├──29.52 MB (12.77%) -- uncompressed
│   │  │  └───1.79 MB (00.78%) -- raw

Then I zoom once again:
├───49.89 MB (20.30%) -- images
│   ├──49.53 MB (20.15%) -- content
│   │  ├──49.53 MB (20.15%) -- used
│   │  │  ├──47.02 MB (19.13%) -- uncompressed
│   │  │  └───2.51 MB (01.02%) -- raw

And again:
├───70.27 MB (25.82%) -- images
│   ├──69.90 MB (25.69%) -- content
│   │  ├──69.90 MB (25.69%) -- used
│   │  │  ├──66.52 MB (24.45%) -- uncompressed
│   │  │  └───3.38 MB (01.24%) -- raw
Google maps is probably caching the images, and since we don't discard image data for images in the foreground tab (even if they're invisible) the decompressed image data sticks around.
(In reply to Kyle Huey [:khuey] (khuey@mozilla.com) from comment #14)
> Google maps is probably caching the images

I can guarantee that images are not cached in JS level. GMaps change image.src attribute as you zoom or scroll (img node remains the same).

The problem actually is caused by PageSpeed add-on even though Firebug is disabled and PageSpeed tab is inactive. After disabling GC successfully reclaims unused memory.
This should have been closed long time ago.
Status: UNCONFIRMED → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.