neprihlásený Utorok, 7. mája 2024, dnes má meniny Monika
Mozilla pracuje na viacprocesovom Firefoxe

DSL.sk, 19.7.2011


Spoločnosť Mozilla po vydaní Firefoxu 4 obnovila práce na verzii Firefoxu využívajúcej viacero procesov.

Informuje o tom Christopher Blizzard z Mozilly zároveň so zhrnutím výhod multiprocesového Firefoxu.

Firefox v poslednej aktuálnej verzii využíva samostatné procesy len na spúštanie pluginov ako sú Flash a Java, podpora tejto funkčnosti je prítomná od verzie 3.6.4 vydanej v júni 2010. Zvyšok prehliadača beží v jednom spoločnom procese, hoci samozrejme s využitím viacerých programových threadov.

Použitie viacerých procesov pre renderovanie stránok ale tiež užívateľského rozhrania podľa Blizzarda zlepší výkon. Efektívnejšie bude možné využiť súčasné viacjadrové procesory, zároveň rozdelenie všetkých pamäťových objektov a štruktúr do samostatných procesov zrýchli garbage collection, odstraňovanie nepoužívaných objektov, respektíve zníži jeho negatívny dopad na odozvu.

Hoci použitie viacerých procesov o niečo zvýši spotrebu pamäte pri rovnakých otvorených stránkach, rozdelenie do viacerých procesov umožňuje efektívnejšie získavať späť uvoľnenú pamäť. Kým v jednom procese môže byť táto pre fragmentáciu blokovaná inými aktívnymi objektami, u viacprocesového modelu je po zavretí procesu uvoľnená všetka jeho pamäť.

Multiprocesová architektúra samozrejme umožní zlepšiť stabilitu, keď pád pri renderovaní jednej stránky nezhodí celý prehliadač. Zároveň pri takejto architektúre je možné znižovať práva procesov renderujúcich stránky a tým ich bezpečnostne izolovať a neumožniť prípadným útočníkom po zneužití chyby spustenie nimi zvoleného kódu s plnými právami.

V ktorej verzii Firefoxu sa využívanie viacerých procesov objaví zatiaľ nie je známe. Viaceré konkurenčné prehliadače, napríklad Internet Explorer a Chrome, využívajú viacero procesov už dlhšiu dobu, Chrome dokonca od uvedenia prvej verzie.


      Zdieľaj na Twitteri



Najnovšie články:

Apple prekvapivo predstavila nový procesor M4 pre PC, prvýkrát ho použila v iPade Pro
Podpora RISC-V v Androide sa komplikuje, Google ju odstránil zo spoločného jadra
V Česku bude plošne dostupná gigabitová symetrická optika
Vesmírny Boeing znovu neodštartoval, problém ale teraz nebol v lodi
Avizované 150 TB a 300 TB flashové SSD


inzercia



Diskusia:
                               
 

Radšej keby poriadne pracovali na aspoň jednom procese...

Posledná verzia stojí za veľké makové s hrozienkami...
Odpovedať Známka: -2.5 Hodnotiť:
 

viacprocesorový? mohli by na tento účel použiť Haskell alebo F#
Odpovedať Známka: -7.7 Hodnotiť:
 

F# tazko, lebo F# funguje len pod .Net frameworkom a to by nikdo nepouzival, keby bolo treba najprv nainstalovat mono, alebo nieco take.

haskell je mozno, ale aj pri haskelli by im jeblo zatazenie ramky, kedze haskell secky datove struktury kopiruje.

cize budu to robit tak ako doteraz, akkurat ze sa bude hladat moznost ako vpakovat nejaku logiku do threadov a na kazdy tab otvorit extra thread.

alebo najlepsie ked to prednastavis, ze mas cojavim 4 procaky, tak povis, ze aby pouzival 4 thready. podobne ako ked encodujes video, tak tiez mozes nastavit, ze kolko threadov ma odpalit potom mas najlepsie vyuzitie seckych jadier.

inak tento problem je aj pri haskelli, a tam na to idu skrz tuto moznost, alebo cez nested strategiu, de mas vlastne nebalancovany strom threadov.
Odpovedať Známka: 4.1 Hodnotiť:
 

jj v haskelli musí byť všetko immutable keď chceš zmeniť jeden pixel na bitmape musíš skopírovať celú bitmapu zo zmeneným pixelom čo je neefektívne, ale tieto časti by sa dali napísať aj v C++

prečo by to nikto nepoužíval? vačšina nových desktop app projektov je napísaná v .NET a Mono a ľudia ich používajú. .NET má nainštalovaný 90% užívateľov PC, a ostatným by ho stiahol inštalátor automaticky. XUL je pomalšie a ťažkopádnejšie, .NET je na viacvláknové aplikácie omnoho vhodnejšia platforma a okrem F# je tam aj jazyk Axum, neviem prečo v Mozille neustále objavujú ameriku.
Odpovedať Známka: -1.2 Hodnotiť:
 

Čo majú teraz robiť, prepísať do .NET celý prehliadač, aby mohli newindowsákom vnútiť Mono? ;)
Odpovedať Známka: 6.5 Hodnotiť:
 

Príspevok bol zmazaný pre nevhodný a/alebo vulgárny obsah.
Odpovedať Známka: 1.4 Hodnotiť:
 

a prečo by mali brať ohľad na newindowsákov keď ich je cca jedno promile?
Odpovedať Známka: -10.0 Hodnotiť:
 

nie viacprocesorový, ale viacprocesový.
Že ty ešte nerobíš v Mozille, keď máš také super nápady :D
Načo by to celé prerábali do Haskell alebo F# kvôli takej maličkosti?
Ako je aj v článku uvedené, nejde o rozdelenie aplikácie do viacerých paralelne vykonávaných vlákien (to už dávno je), ide skôr o zvýšenie bezpečnosti, nakoľko procesy sa od vlákien navzájom líši najmä osobitnými právami (používateľ), adresovým priestorom a pridelenými zdrojmi.
Osobne vítam tento krok a považujem ho za rozumný spôsob bezpečnostnej politiky Firefoxu.
Odpovedať Známka: 8.5 Hodnotiť:
 

Nie, ďalší Chrome nechcem! Už dosť, že sa začali opičiť s verziami...
Odpovedať Známka: -6.4 Hodnotiť:
 

super.opera tuším nic takového nemá že ?
Odpovedať Známka: -4.7 Hodnotiť:
 

super.opera tuším nic takového nemá že ?
Odpovedať Známka: -6.3 Hodnotiť:
 

treba ceknut na wikipedii, tam by to malo byt napisane, ja operu nepouzivam, cize nevim...
Odpovedať Známka: 2.0 Hodnotiť:
 

Viete prečo nemôže Slovensko poslať vlastnú kozmickú loď na Mars? Odpoveď: Lebo Fico. A ako sa bude po novom volať SASka? Odpoveď: Lebo Fico. Sulík a spol. vylúčili Matoviča z poslaneckého klubu. Prečo? Lebo Fico. A tak, keď sa budú po Slovensku preháňať Maďari ako za Uhorska, Sulík povie: Lebo Fico.
Odpovedať Známka: -7.3 Hodnotiť:
 

A ty si sa tu kde vzal? Lebo Fico?

Vzhladom na to, ze tu politika nepatri, budem strucny. Fico je zodpovedny za vela, hlavne za svoju neschopnost. Ten taraj tu 4 roky vykrikoval, lebo dzurindaaaaaaa. Pokrytec jeden. HOWG!!!!
Odpovedať Známka: 3.9 Hodnotiť:
 

while !((i=1) and (i<>1)):

i++
politik[i-1]::leave()
politik[i]::trashtalk(politik[i-1])

Odpovedať Známka: 3.3 Hodnotiť:
 

Odladena funkcia na vypocet kokotstva v politike, vzdy vrati true???

bool IsPolitikKokot()
{
bool retVal=false;
CPolitik *politik = new CKokot();
if (politik->IsKokot()) retVal=true;
delete politik;
return retVal;
}
Odpovedať Známka: 2.9 Hodnotiť:
 

to tam vytvaras novy exemplar kokota politika, aby si ho potom hnet vymazal? to je nejaka somarina, ne?

najlepsie je nevytvarat ziadne exemplary kokotskych politikov a problem je vyrieseny.
Odpovedať Známka: 7.3 Hodnotiť:
 

to while nevyzera ze niekedy pobezi.

ako je definovane i?

funkcia politika je ako definovana?
Odpovedať Známka: -3.3 Hodnotiť:
 

i by malo bezat
akurat som pouzil namespace namiesto struct :/
Odpovedať Známka: -2.0 Hodnotiť:
 

A ja citam, ze "Mozilla pracuje na viacprocesorovom Firefoxe" :D Ach ta dyslexia :))))
Odpovedať Známka: 7.3 Hodnotiť:
 

..veru, aj viacprocesorový (prístup by líštičke pomohol :d;
Odpovedať Známka: -2.0 Hodnotiť:
 

hned mi bol ten nadpis akysi cudny
Odpovedať Známka: 6.4 Hodnotiť:
 

ako mohli na nom prestat pracovat?
ved dnes uz kazdy pocitac alebo notebook ma viac jadier. Je snad samozrejme ze treba vyuzit ich moznosti
Odpovedať Známka: -6.7 Hodnotiť:
 

Možnosti viacerých jadier dokáže bez problémov využiť aj jeden proces.
Odpovedať Známka: 9.0 Hodnotiť:
 

o to ide. ja neocakavam, ze firefox pojde cestou akou isol google chrome, skrz kazdy tab ma jeden proces, pricom nevim ci to v skutocnosti tak je, kedze som chrome nikdy neskusal, ale google tak hovori, ze to tak je.

v tom pripade si ale proces kopiruje komplet logiku a to zatazuje dalej ramku.

rozdelit priebeh jedneho procesu na viacero procesorov sa da skrz thready.
Odpovedať Známka: 0.0 Hodnotiť:
 

Nemusi si nutne kopirovat celu logiku. Tu moze mat v zdielanych knizniciach, ktorych obsach sa fyzicky v pamati vyskytuje iba raz, avsak su namapovane do adresovych priestorov vsetkych procesov, ktore ich pouzivaju.
Samozrejme, nejaka ta rezia navyse s rozdelenim na viac procesov vznikne, ale myslim ze je to prijatelne vzhladom k pozitivam, ktore to prinesie.
Odpovedať Známka: 10.0 Hodnotiť:
 

Casto sa odporuca pouzit viac procesov a IPC namiesto vytvarania threadov. Pri Chrome mam dojem, ze to vyrazne spomalilo cely prehliadac (pouzivam ho od verzie 3.x). Navyse spotreba pamate sa najmenej zdesatnasobila. Chrome uz radsej ani nespustam pretoze na vyvojovej masine pri spustenom VisualStudiu a SQL Serveri po spusteni Chrome vyleti commit charge do nebies a samozrejme si to odnesu tie najnevhodnesie procesy, ktore sa vysvapuju do page file. Navyse Chrome si mysli ze je uzasne, ked po zavreti zostane jedna instancia v pamati (pre rychle opatovne spustenie). Pomoze len Kill process tree a potom CleanMem...
Odpovedať Hodnotiť:
 

To, ze po skonceni ostava v pamati je celkom bezna vec, ktora sa netyka len chromu. Ostava vsak ako "Cached", t.j. v pripade potreby (nedostatku pamate) je tato uvolnena a miesto sa moze vyuzit pre momentalnu potrebu inych procesov.
Odpovedať Známka: 3.3 Hodnotiť:
 

Zostava v pamati ako beziaci process! Toto je po ukonceni Chrome (zavreti cez sytemove menu). Vsetko zmizne ale proces bezi:
http://goo.gl/HrqZj

Urcite nestojim o takyto nezmyselny proces. Navyze si drzi
GoogleTalk plugin. Start Chrome mam akcelerovany a nepotrebujem aby stale bezal. Nepomaha ani vypnutie Background apps.
Odpovedať Hodnotiť:
 

Hmm tak to je divne. Ja mam linux a chromium, akurat som to otestoval a po zavreti browsera cez systemove menu nezostane bezat ani jeden proces. Ze by to bolo rozdielom medzi chrome a chromium?
Odpovedať Hodnotiť:
 

tu skor ide o vyuzitie pamate aby vznikala mensia fragmentacia
Odpovedať Hodnotiť:
 

hlavne ak je ten proces Internet Explorer :-D
Odpovedať Známka: 10.0 Hodnotiť:
 

ze 1 stetcom moze malovat aj 20 maliarov?
Odpovedať Známka: 3.3 Hodnotiť:
 

Oni pracuju na viacprocesovom Firefoxe nepretrzite uz dlhsie, akurat ze je to dost velky projekt prepisat cely kod od zakladov. Zaciatky su prave v tom Firefoxe 3.6.4, kde oddelenie pluginov bola prva faza.
Odpovedať Známka: 6.0 Hodnotiť:
 

ano to je pravda, sice nevim do akej miery to bolo aj predtym tak, ale v kazdom pripade mozem potvrdit, ze aj ja vidim pluginy ako extra proces a tym padom to aj moze bezat na inom jadre ked treba.
Odpovedať Hodnotiť:
 

samozrejme potom je otazka, do akej miery multithreaded je napr taky adobe flashplugin.
Odpovedať Hodnotiť:
 

Príspevok bol zmazaný pre nevhodný a/alebo vulgárny obsah.
Odpovedať Známka: -10.0 Hodnotiť:
 

Tak si Firefox spustite 4x a pobezi kazde na jednom jadre.
Odpovedať Známka: 5.6 Hodnotiť:
 

nooo, to ci nepomoze, lebo instancia firefoxu bezi iba jedna porat, cize proces tam je iba jeden. to skor myslis ako chrome, ze tam kazdy tab robi vlastny proces ale to zas zere o to viac ramku.

cize to nie je take jednoduche ako opisujes.
Odpovedať Známka: 4.3 Hodnotiť:
 

akoze ja to vidim tak, ze teda firefox mi zere viac cpu time ako flashplayer od adobe a to je co povedat, krista...

cize tych viacero threadov tam uz malo byt davno, aby to clovek rozdelil na viacero procesorov a podobne.

to zatazenie ramky ale tiez je dolezite, aby teda ten firefox rychlejsie uvolnoval pamaet, aby to nezajebavalo porat ramku, lebo to spomaluje najviac, viac ako to, ci to je na jednom cpu, alebo viac, kedze je malo pouziti, kde by clovek mal zatazenie cpu viac ako 100% pri 2 ghz jadre.
Odpovedať Známka: -8.2 Hodnotiť:
 

thready tam uz su, ide o pamat
Odpovedať Známka: 10.0 Hodnotiť:
 

Príspevok bol zmazaný pre nevhodný a/alebo vulgárny obsah.
Odpovedať Známka: -10.0 Hodnotiť:
 

neviem cim to je, ciarky pouzivas, bodky tiez, pises zda sa slovensky, ale stale ti nerozumiem a neviem co chces povedat..
Odpovedať Známka: 10.0 Hodnotiť:
 

tak na ktorom sposobe sa pracuje, "multi-procesový, (v zmysle multi-cores-cpu) al. multi-procesorový (= multi-threads, "vlákna") ? ?
ktorá metoda by bola lepšia ?
(resp. o ktorom výraze má vobec zmysel hovorit)
ano, pls vysvetlit tie rozdiely viac do hlbky, ktorí ste tu povolanejší, pietro, mne to už takto k večeru splýva.. :D ;:)
Odpovedať Známka: 2.0 Hodnotiť:
 

1. multi-procesový: V jednej inštancii bežia viacero vlákien rozdelených na viacero CPU jadier.
2. multi-procesorový: V jednej inštancii beží jedno vlákno a každá inštancia beží na viacerých CPU jadrách.

Problém Firefoxu je ten, že mnoho vlákien beží sériovo, čo značne degraduje jeho výkon.
Odpovedať Známka: -5.0 Hodnotiť:
 

ses mimo
Odpovedať Známka: 10.0 Hodnotiť:
 

Ale skúsiť som mohol, nie? :D
Odpovedať Známka: 2.0 Hodnotiť:
 

ale radsej by mali vycistit kod.

Odpovedať Hodnotiť:
 

A ty si studoval zdrojove kody Firefox-u?
Odpovedať Známka: 6.0 Hodnotiť:
 

Príspevok bol zmazaný pre nevhodný a/alebo vulgárny obsah.
Odpovedať Hodnotiť:
 

Len aby na to apple nemal nejaky patent
Odpovedať Známka: 10.0 Hodnotiť:

Pridať komentár