Electrolysis

Mozilla: Neue Architektur soll Firefox schneller und stabiler machen

Andreas Proschofsky, 17. Juli 2011, 14:46
  • Artikelbild
    grafik: mozilla

    Der Firefox wird auf neue Beine gestellt.

Einzelne Seiten sollen künftig in getrennten Prozessen laufen - Bessere Unterstützung für Multi-Core-Systeme

Schon vor einiger Zeit hat man bei Mozilla angekündigt, künftig dem Vorbild von Google Chrome folgen zu wollen, und den Browser in mehrere Prozesse zu spalten. In den letzten Monaten ist es dann aber wieder recht ruhig um das Projekt "Electrolysis" geworden, das soll nun eine Ende haben, wie Mozilla-Entwickler Christopher Blizzard in einem Blog-Eintrag verkündet.

Full Speed

Seit der Veröffentlichung von Firefox 4 habe man die Arbeiten an dem Unterfangen wieder mit voller Geschwindigkeit aufgenommen. Bei der neuen Architektur sollen alle Seiten - bzw. Domains - in einem eigenen Prozess laufen, woraus sich eine ganze Reihe von Vorteilen ergeben. Zunächst profitiert davon einmal die Zuverlässigkeit. Stürzt ein Tab ab, reißt er nicht mehr länger alle anderen Seiten mit. Schon bislang trennt man Flash und andere Plugins aus diesen Gründen vom restlichen Inhalt.

Reaktion

Für viele NutzerInnen aber wohl noch wichtiger: Das Multi-Prozess-Modell soll einen spürbaren Performance-Zuwachs bringen. Dies weniger in einzelnen Benchmarks sondern vor allem bei der Reaktionsgeschwindigkeit. Da man sich hier viele komplizierte Speicheraufräumarbeiten erspart, sollen bisher immer wieder sichtbare Hänger bei manchen Aufgaben entfallen. Zudem profitieren von der neuen Architektur natürlich automatisch Multi-Core-Systeme, die die einzelnen Seiten dann besser auf unterschiedliche Kerne aufteilen können.

Speicher

Bleibt noch die immer wieder angesprochene Frage des Speicherverbrauchs: Wie von Chrome - und anderen Browsern mit einem solchen Modell - bekannt, steigt dieser zunächst mal durch den Multi-Prozess-Ansatz. Allerdings wird er auch "berechenbarer". Wird eine Seite geschlossen, wird der zugehörige Prozess beendet und so der vollständige Speicher wieder freigegeben. Beim bisherigen Ansatz ist das nicht so ohne weiteres zu gewährleisten.

Sicherheit

Auch Sicherheitsvorteile erhofft man sich, da die einzelne Seiten so besser per Sandboxing voneinander getrennt werden können. Wann "Electrolysis" in den Hauptentwicklungszweig von Firefox einfließen soll, lässt man derzeit allerdings noch offen. (apo, derStandard.at, 17.07.11)

Kommentar posten
Posting 1 bis 25 von 28
1 2
Herzerzog Johann
00
18.7.2011, 14:55

"Wird eine Seite geschlossen, wird der zugehörige Prozess beendet und so der vollständige Speicher wieder freigegeben."

Hoffentlich klappt das wirklich. Der kumulative Speicherverbrauch ist ein Ärgernis, seit es diesen sonst sehr guten Browser gibt. Na gut, Mosaic und Netscape hatten den Mangel auch schon.

Georg G
00
18.7.2011, 14:42

wäre mir lieber, wenn ich mit jeder version pdfs im browser ansehen könnte!! jedes mal muss man da rumpfuschen bis es geht!

broncoo
00
18.7.2011, 18:49

pdf - "öffnen mit" ...

=> Wo ist das Problem?

Georg G
00
19.7.2011, 14:35

wäre schön, wenns so einfach wäre ;-). ohne addon klicke ich den link an, muss das pdf speichern, in den ordner gehen, öffnen und das pdf wieder löschen, wenn ich nichts damit anfangen kann.

ich möchte allerdings nur den link anklicken und das pdf im browser anzeigen lassen. das kann ja wohl nicht so schwer sein. es soll auch nicht automatisch gespeichert werden, wenn ichs öffne...

etc. also hier ist ff echt ein schaß!

broncoo
00
19.7.2011, 19:36

keine Ahnung, was Du bei Deiner FF-Installation verstellt hast - man kann sich in "Edit->Preferences->Applications" (bzw. im deutschsprachigen Pendant) aussuchen, was mit dem pdf beim Anclicken geschehen soll - speichern/öffnen/rückfragen

???

Georg G
00
20.7.2011, 10:53

derzeit habe ich eben das pdf-addon eingestellt, so kann ich pdfs gleich im browser ansehen, ohne dass die "vorschau" (mac os programm) geöffnet werden muss. leider ist das addon nicht für version 5 kompatibel (auch nicht für 4, aber da hab ichs dann doch geschafft, war aber recht umständlich).

Use Linux
00
18.7.2011, 12:24

Weiß wer, wann diese Änderungen in FF Einzug halten werden?

Klink
00
18.7.2011, 14:09

Teile sind schon in der aktuellen Nightly drin, aber vor FF 9/10 ist damit nicht zu rechnen.

Eisteefetischist #1
06
18.7.2011, 11:26

Was haben bloß immer alle mit dem RAM-Verbrauch? Solange das nicht irgend wo herumleakt, ist es im Zeitalter der 8-GB-Hofernotebooks vollkommen irrelevant, ob der 100 oder 500 MB belegt.

Ein schnellerer Start wäre nicht schlecht. Die Nightlies (Version 8) sind da schon recht flott.

Und zum Nummernschema braucht man sich eh nimmer äußern. Lang halten das weder FF noch Chrome durch; Version 28 klingt nicht super und ist lächerlich. Ist wohl das Opfer, das man der 'Agilität' bringen muss.

fake vomit inc.
00
18.7.2011, 21:55
100 - 500 MB? Sehr witzig ...

1,5 - 2 GB triffts wohl eher.

Eisteefetischist #1
00
19.7.2011, 09:24

Nicht bei mir, sorry. Der Verbraucht ist zwar relativ hoch, aber über 500 MB war auch die Version 4 nie.

Herzerzog Johann
00
18.7.2011, 15:18

RAM-Verbrauch:
In der Theorie hast Du natürlich recht. In der Praxis schaut es so aus, daß der Browser den beanspruchten Speicher kumuliert, äußerst ungern wieder freigibt und - laienhaft formuliert - ab einer gewissen Größe (welche noch weit von der vorhandenen Kapazität entfernt ist) dann mit dessen Verwaltung selbst überfordert zu sein scheint. Passiert merkwürdigerweise auch dann, wenn er zwar läuft, aber gar nicht benützt wird. In der Folge zeigt er dann eben auch merkwürdige Verhaltensweisen. Ich weiß nicht warum das so ist.

Startgeschwindigkeit:
Ist bescheiden, aber nicht unbedingt ein wichtiges Kriterium. Ich starte ihn üblicherweise mittels Autostart und das sollte für diesen Tag genügen - würde dann mit der Zeit nicht das obig

Eisteefetischist #1
00
19.7.2011, 09:26

Ja, stimmt. Das ist aber so ein 'klassischer' FF-Bug. Da gibt's noch ein paar, die schon seit den ersten Versionen mitgeschleppt werden. Mein liebster ist, wenn man ihn unter mir nicht nachvollziehbaren Umständen schließt, dann wieder aufmachen möchte und eine Fehlermeldung kriegt, dass er noch immer läuft. Man kann den Prozess dann problemlos killen, aber wenn man das mit dem Taskmanager nicht weiß...

Ich glaube, den gibt's schon seit den Prä-1.0-Versionen.

Mathias
 
00
20.7.2011, 15:55
Ich glaube, den gibt's schon seit den Prä-1.0-Versionen.

Auf welchem OS haben Sie den FF so früh verwendet? Dieses Phänomen trat bei meinen Geräten auf Linux & Windows erst mit Version 2.0 auf ...

broncoo
01
18.7.2011, 18:07

also bei mir fängt der FF5 erst nach ein paar Tagen an, "zäh" zu werden - nach Beenden wird tatsächlich merklich freigegeben (was ich am System-Monitor seh). Derzeit geht's noch:

VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1545m 680m 33m S 1.7 8.6 8:31.55 firefox-bin

Herzerzog Johann
00
18.7.2011, 15:21

- würde dann mit der Zeit nicht das obige Problem auftreten.

--: SID :--
00
18.7.2011, 11:08
"Einzelne Seiten sollen künftig in getrennten Prozessen laufen"

Daaaaaaaaaanke !
Endlich wird das Ding auch auf dem 2x2HT-Atom sauschnell ^^

Marten E. Vanderveen
 
02
17.7.2011, 21:02

Multi-Prozess-Architektur hört sich toll an, macht aber auch Probleme wie z.B. der erhöhte RAM-Verbrauch. Auch kann der Browser nach wie vor komplett abschmieren. Chrome stürzt bei mir ungefähr jedes Monat einmal komplett ab, und meistens ist Flash daran schuld.

--: SID :--
00
18.7.2011, 11:09

Beim FF stürzt nur der Flash ab und kann danach neu gestartet werden. Passiert relativ häufig bei flashlastigen Sites.

dieter tiefensteppe
21
18.7.2011, 07:41

eigentlich sollte mutiprocessing den ram entlassten, sprich weniger an ram verbrauchen. da schliesslich ja mehrere prozesse parallel ablaufen und nicht seriel gestored werden müssen. aber da das multiprocessing im consumer markt, welcher auch die entwicklungstools beherrscht, auf multiprocessing entwicklung erst seit kurzem gesetzt wird, ergibt sich sogar eine paradoxe situation, anstatt einem performance gewinn erlebt man manchesmal sogar das gegenteil.

Der Mann in Orange
00
19.7.2011, 13:09

viele prozesse gleichzeitig laufen zu lassen erfordert eine komplexe designentscheidung: habe ich eine feine arbeitsteilung zwischen den threads, muss eine sichere kommunikation zwischen ihnen gewährleistet sein - und dafür benötigt man tiefgehende kenntnisse in der systemarchitektur. viele hochsprachen sind daher aus designgründen nicht threadsicher - etwa C++ (ändert sich aber mit dem neuen C++-standard), wo es nur durch compilerspezifische tricks (die etwa pthreads ausnutzt) überhaupt möglich ist, parallel laufende prozesse deterministisch zu halten.
eine gröbere granularität ist einfacher zu realisieren: hier sinkt der kommunikationsaufwand zwischen den threads, was die gesamtanwendung wiederum schneller macht (im bestenfall superlinea

Graph Bobby
01
18.7.2011, 09:51
parallel, seriel,.. wiewaswann?

Also grundsaetzlich brauchen mehr zur selben Zeit laufende Tasks auch mehr Speicher. Auch wenn mehrere Tasks am selben Problem arbeiten, muessen die Daten dafuer irgendwo gespeichert werden, da aendert sich durch die Parallelverarbeitung an der Speicherung nicht viel, und wenn, dann eher in Richtung steigenden Speicherverbrauchs fuer die Locks, die man zur Thread/Prozesssynchronisation braucht.

STiAT
00
17.7.2011, 21:08

Für flash kann chrome doch nichts :-) .. wobei das sollte unter chrome in einer sandbox laufen wie in Opera, oder?

RAM-Verbrauch zwischen Prozessen .. unter Windows vermutlich threads, unter Linux Prozesse.
In Windows können Threads, und in Linux Prozesse memory sharen, das sollte, bei sauberer Programmierung, einen geringen Overhead verursachen.

Der Mann in Orange
00
19.7.2011, 13:12

unterschätzen sie nicht den aufwand von interprozesskommunikation zur synchronisation gemeinsam genutzter speicherbereiche!

viele frameworks, die explizit hierfür gedacht sind, haben ihre tücken.

Graph Bobby
02
18.7.2011, 01:10
Mehrere Threads...

...sind es jetzt schon. Auf mehrere Prozesse aufzuteilen hilft unter Umstaenden, weil bei einem Fehler in einem Thread ein ganzer Prozess beendet wird, und nicht nur ein Thread.
Unter Linux geht das relativ einfach, z.B. mittels fork(), und neben Shared memory kann man zur IPC (InterProcessCommunication) auch Sockets verwenden (darueber lassen sich auch Filedescriptors weitergeben).
Fuer den Windows-Port wird das alles etwas umstaendlicher, fork()en kann Windows nur um ein paar Ecken, das Erzeugen von Subprozessen kostet mehr Zeit als unter Unix, und die IPC ist vergleichsweise auch umstaendlich. Das Multiprozessmodell fuer Firefox plattformunabhaengig unter einen Hut zu bringen wird wohl nicht einfach...

Kommentar posten
Posting 1 bis 25 von 28
1 2

Die Kommentare von Usern und Userinnen geben nicht notwendigerweise die Meinung der Redaktion wieder. Die Redaktion behält sich vor, Kommentare, welche straf- oder zivilrechtliche Normen verletzen, den guten Sitten widersprechen oder sonst dem Ansehen des Mediums zuwiderlaufen (siehe ausführliche Forenregeln), zu entfernen. Der/Die Benutzer/in kann diesfalls keine Ansprüche stellen. Weiters behält sich die derStandard.at GmbH vor, Schadenersatzansprüche geltend zu machen und strafrechtlich relevante Tatbestände zur Anzeige zu bringen.