Mozilla Firefox

Aveţi ataşate rezultatele urmăririi memoriei RAM în general şi cea ocupată de Firefox în special. 2-4 ferestre de firefox, pe două profile diferite, diverse taburi şi diverse tipuri de pagini. Am 35 de extensii instalate.

Un grafic arată efectul unui restart pe toate Firefox-urile. Celălalt grafic arată memoria în cursul săptămînii. Găurile gri sînt zone neurmărite, fie din cauză de computer în standby fie dinainte să încep graficul.

Am folosit rrdstorm.sh pe Linux. Scriptul pentru calcularea memoriei Firefox e dat mai jos. Restul e luat din /proc/meminfo. Colectarea pe toate valorile s-a făcut la fiecare 15 secunde.

Code:
#!/bin/bash
SUM=0
for PID in $(pidof firefox-bin); do
  MEM=$(pmap -d $PID|tail -1|awk '{print $4}'|cut -dK -f1)
  SUM=$((SUM+MEM))
done
echo $SUM

Concluzie: se caţără pe tine pînă-l ucizi. :smile: Dar pe o maşină cu 2 GB de RAM poate fi folosit perfect confortabil. Linux îşi face cache în RAM la tot felul de chestii, share la lib-urile folosite şamd. Ar trebui probabil să menţionez că pe ea rulează un desktop full de Ubuntu, Eclipse, player de muzică, sunbird, Pidgin, Liferea, Claws Mail şi diverse alte animale.

Nu aş recomanda deci Firefox pe 1 GB de RAM decît cu un profil fără multe extensii şi restart periodic (există extensie pentru "Restart" în File menu).
 

Attachments

  • mem1c.png
    mem1c.png
    9.8 KB · Views: 29
  • memWc.png
    memWc.png
    11.8 KB · Views: 30
Wait, wait. Vrei să zici că sub Linux, Forefox ocupă 1 GB de memorie? Sau nu înţeleg eu graficele alea?
 
Da. Dar e cam tendenţios cum ai formulat întrebarea. :smile: N-am idee dacă e ceva specific Linux (tind să cred că nu). Orice OS serios face lib sharing. Din motivul ăsta, "1 GB" e relativ spus. Îţi ataşez o trecere în revistă a tot ce înseamnă "firefox-bin". O să vezi că nu e aşa de simplu de demarcat ce e "firefox" şi ce e shared cu alte aplicaţii şi cu desktop environment. De exemplu, tot ce vezi acolo cu "gtk", "fontconfig", "pango", "ssl", "tls", "freetype", "xml", "ttf", "sound", "locale", "gnome", "libstdc" ş.a.m.d. sînt cel mai probabil shared cu multe alte aplicaţii şi apar în contul firefox dar de fapt sînt încărcate o singură dată pentru toată lumea.

Evident, la mijloc ceva tot nu e kosher, că atîta timp cît are RAM se pare că se tot duce în sus. Alte aplicaţii nu fac asta. O să vedem ce face pe termen mai lung (am lăsat să se colecteze datele în continuare), dacă are vreun plafon sau se duce pînă mănîncă tot.

Eu tind să bănuiesc că e legată toată afacerea cumva de istoricul de browsing. Rămîn nişte resurse alocate şi nu se eliberează. Probabil că metoda cea mai ţărănească va fi cu fiecare tab proces separat, atunci se va elibera clar memoria cînd îl închizi.
 

Attachments

  • firefox_pmap.zip
    4.8 KB · Views: 13
Păi ştiu că nu e aşa de simplu, dar putem să simplificăm aflând dacă acea cantitate de memorie ocupată conţine şi shared libraries (sau cum se numesc ele sub Linux) sau doar memorie ocupată exclusiv pentru Firefox ("this memory is MY memory and nobody else's memory"). Dacă e rezervată pentru Firefox avem o MARE problemă; îţi spun sincer că mă aşteptam la dimensiuni cel mult egale cu Windows, aşa înseamnă că implementarea Firefox pentru Linux e mult mai varză decât cea Windows-based, ceea ce e foarte interesant.
LE: păi dacă graficele alea arată totalul, inclusiv shared libraries, pentru orice program activ, o să ai la un moment dat rapoarte care îţi spun că toate programele active ocupă 5-6 GB în memorie, ceea ce e... ciudat. Şi nu ajută.
 
Ai dreptate. Ar trebui să scot din harta produsă de pmap anumite chestii, doar că nu ştiu ce. O să fac nişte dump-uri periodice, sortate, şi o să văd ce anume dintre toate chestiile alea creşte de fapt.

Aşa, la modul simplist, dacă fac grep doar după flash şi /data/opt/firefox şi fac suma, ies vreo 57 MB cînd totalul e 340 MB.

PS: Nişte explicaţii despre dificultatea problemei şi o posibilă soluţie găsiţi aici. O să mă uit la acel "smem" cînd oi avea timp.

LE: M-am uitat. Rezultate MULT diferite. Cam în zona în care preconizam mai sus (57 vs 340). I-am dat drumul să înregistreze, vin cu un alt grafic la sf. săptămînii viitoare. O să le marchez pe amîndouă pe graf (valorile realiste şi alea ca mai sus) ca să-mi dau seama de diferenţa dintre ce vede un user de Linux în System Monitor şi realitate.
 
Last edited:
Altă viaţă. Testat în aceleaşi condiţii, dar de data asta dunga albastră e raportată de smem, care urmăreşte bucăţile de RAM folosite exclusiv de Firefox. Am lăsat şi memoria "aparentă" (+shared) ca să se vadă diferenţa.
 

Attachments

  • mem1.png
    mem1.png
    9.7 KB · Views: 21
Şi, cum promiteam, am făcut şi-o diferenţă între ce raportează pmap la două momente succesive. Lista de mai jos ne dă o idee despre ce este vorba.

Cu minus apar chestiile care au fost scoase între timp, cu plus cele care au apărut. La final aveţi totalurile. Diferenţa nu este exhaustivă dar cum ziceam, ne facem o idee.

Pe scurt, e vorba de: chestii de sunet (biblioteci Ogg/Vorbis, FLAC, PulseAudio), imagine (PNG), fonturi, plugins (Java), criptare, Gnome (ATK, Bonobo, GVFS, Gail), X, networking (Avahi) etc.

Code:
+/data/opt/firefox-3.5/components/libbrowsercomps.so 152K
+/data/opt/firefox-3.5/libplc4.so 12K
-/data/opt/firefox-3.5/libxpcom.so 12K
-/data/opt/firefox-3.5/libxpcom.so 4K
+/dev/shm/pulse-shm-2418993384 65540K
-/lib/i686/cmov/libcrypto.so.0.9.8 52K
-/lib/ld-2.10.1.so 108K
-/lib/tls/i686/cmov/libnss_files-2.10.1.so 40K
+/lib/tls/i686/cmov/libpthread-2.10.1.so 4K
-/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/libjavaplugin_nscp.so 24K
+/usr/lib/libatk-1.0.so.0.2809.1 108K
+/usr/lib/libavahi-common.so.3.5.1 40K
+/usr/lib/libbonobo-activation.so.4.0.0 80K
-/usr/lib/libfontconfig.so.1.3.0 172K
+/usr/lib/libFLAC.so.8.2.0 312K
+/usr/lib/libgailutil.so.18.0.1 24K
-/usr/lib/libgthread-2.0.so.0.2200.2 16K
-/usr/lib/libgvfscommon.so.0.0.0 80K
-/usr/lib/libpng12.so.0.37.0 152K
+/usr/lib/libpulsecommon-0.9.19.so 288K
+/usr/lib/libpulse.so.0.12.0 248K
+/usr/lib/libsndfile.so.1.0.20 408K
+/usr/lib/libtdb.so.1.1.5 52K
+/usr/lib/libvorbisenc.so.2.0.3 952K
+/usr/lib/libXcursor.so.1.0.2 36K
-/usr/lib/libXi.so.6.0.0 36K
+/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf 324K
-/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf 7512K
+/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf 512K
-/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf 324K
-/usr/share/fonts/truetype/unfonts/UnDotum.ttf 2160K
+/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf 300K

-10692K
+69392K
 
Bun, deci bibliotecile shared sunt accesibile în acelaşi spaţiu de memorie şi pentru alte programe, which is fine :smile:
Spaţiul ocupat e micuţ, poţi să pui şi o estimare aproximativă a ceea ce zice Firefox în about:cache?
 
În 3.6 beta 1 au introdus şi about:memory, care arată ca în ataşament. La acel moment, Task Manager arăta ~210 MB ocupaţi. 15 tab-uri, 4 extensii active.
 

Attachments

  • fx36b1.PNG
    fx36b1.PNG
    11.2 KB · Views: 22
Spaţiul ocupat e micuţ, poţi să pui şi o estimare aproximativă a ceea ce zice Firefox în about:cache?

Memory cache device
Number of entries: 0
Maximum storage size: 23552 KiB
Storage in use: 0 KiB
Inactive storage: 0 KiB
Disk cache device
Number of entries: 0
Maximum storage size: 51200 KiB
Storage in use: 0 KiB
Offline cache device
Number of entries: 0
Maximum storage size: 512000 KiB
Storage in use: 0 KiB

şi celălalt Firefox:

Memory cache device
Number of entries: 130
Maximum storage size: 23552 KiB
Storage in use: 1113 KiB
Inactive storage: 1113 KiB
Disk cache device
Number of entries: 3713
Maximum storage size: 51200 KiB
Storage in use: 51145 KiB
Offline cache device
Number of entries: 0
Maximum storage size: 512000 KiB
Storage in use: 0 KiB

Dar nu ştiu cît de relevant e că pe primul îl folosesc mai mult.

În orice caz, devine evident că nu prea are nicio treabă ce raportează sistemul de operare cu ce ne interesează pe noi (adică ce face Firefox de fapt cu memoria). Adică teste de acest gen (care a fost şi pe Slashdot) e posibil să fie zero barat.
 
Chrome deschide un proces nou pentru fiecare tab; avantajul e că dacă crapă unul, nu crapă tot; dezavantajul... memorie mâncată.
 
Eu faceam paralela intre comportamentele Iron si FF pe Windows-ul meu. In aceleasi conditii, fie ele de utilizare light sau intensa, FF e mult mai mancator de resurse.
 
Last edited:
Şi eu cred că metodologia din testul respectiv ar trebui revăzută. Cel mai probabil s-a lovit de aceeaşi problemă ca şi mine.
 
Spike-ul de mai jos e cam tot ce-am văzut mai ambiţios din partea Firefox-urilor mele în perioada asta: 750 MB de consum real (adică numai chestii folosite exclusiv de Firefox). Şi nu e tipic, deci voi trage concluzia că 2 Firefox-uri (profile diferite) folosite cu pînă la 20 de taburi fiecare simultan consumă împreună în medie 250-275 MB.

Aveţi şi graficul lunar cu medii, maxime etc.

Nici chiar graficul ăsta nu e perfect, pentru că depinde de cît dintre chestiile shared sînt shared şi cu cine. Pentru un test cu adevărat concludent ar trebui ca Firefox să ruleze singur în X, fără Gnome desktop sau orice altă aplicaţie. Dar evident că nu e fezabil să n-ai nimic în afară de Firefox (window manager, panel etc.)
 

Attachments

  • memM.png
    memM.png
    16.4 KB · Views: 15
  • memW.png
    memW.png
    14.6 KB · Views: 10
Firefox 3.6:
* Support for a new type of theme called Personas, which allow users to change Firefox's appearance with a single click.
* Protection from out-of-date plugins to keep users safer as they browse.
* Open, native video can now be displayed full screen and supports poster frames.
* Improved JavaScript performance, overall browser responsiveness, and startup time.
* The ability for web developers to indicate that scripts should run asynchronously to speed up page load times.
* Continued support for downloadable web fonts using the new WOFF font format.
* Support for new CSS attributes such as gradients, background sizing, and pointer events.
* Support for new DOM and HTML5 specifications including the Drag & Drop API and the File API, which allow for more interactive web pages.
* Changes to how third-party software can integrate with Firefox in order to prevent crashes.
 
Din pacate versiunea 3.6 a lui Firefox are un "ghimpe" cu unele add-onuri. Spre exemplu nu se intelege deloc cu FoxGame si Galaxytool (fanii Ogame stiu despre ce e vorba). :frown:
 
Back
Top