Massiv parallelisiert
Diese Art der Aufspaltung einzelner Aufgaben nennt Clark in ihrer Beschreibung der Quantum-Arbeiten "grobkörnig". Immerhin könne dies immer noch dazu führen, dass ein CPU-Kern voll ausgelastet ist, während andere keinerlei Aufgaben abarbeiten. Besser sei ein "feinkörniger Ansatz" bei dem die anstehenden Arbeiten in viele kleine Teile zerlegt werden und so immer auf freie Ressourcen verteilt werden könnten, schreibt Clark.
Diesen "feinkörnigen" Ansatz hat Mozilla mit Stylo, dem Quantum CSS, umgesetzt. Stylo stammt aus der experimentellen Rendering-Enginge Servo, die in der Programmiersprache Rust geschrieben ist. In Stylo werden Algorithmen eingesetzt, die es ermöglichen, die CSS-Style-Berechnung der DOM-Knoten linear zu parallelisieren. Dieses sogenannte Work Stealing sorgt dafür, dass sämtliche verfügbaren CPU-Ressourcen auch ausgelastet werden.
Da Rust selbst klar für die Verwendung in Mehrkern- und -Prozesssystemen ausgelegt ist und etwa auf Sprachebene sogenannte Race Conditions verhindert, werden typische Probleme bei dieser Art der Parallelisierung von vornherein vermieden. Damit wird die von Stylo durchgeführte Aufgabe ein Problem, das beliebig parallelisierbar ist. Zusätzlich dazu nutzt Stylo ein paar weitere Tricks zur Beschleunigung der Arbeiten wie einen Style-Sharing-Cache, der so ähnlich auch in Chrome und dem Safari-Browser verwendet wird.
Quantum Render kommt später
Der letzte große und alleinstehende Teil der Quantum-Arbeiten ist die Integration des GPU-Backends, Quantum Render, in den Firefox. Auch diese Technik stammt ursprünglich aus dem Servo-Projekt und ist in Rust geschrieben. Der Webrender soll dazu genutzt werden, das gesamte Rastern auf der GPU auszuführen. Das betrifft insbesondere die Darstellung von Animationen, welche durch Webrender im Vergleich zu bisheriger Technik deutlich beschleunigt werden. Letztlich wird damit die GPU genau für den Zweck genutzt, für den die Hardware eigentlich gedacht ist. Bisher machen Browser davon aber so gut wie keinen Gebrauch.
Im Prinzip nutzt der Browser den Webrender dann genauso, wie Videospiele ihre Game-Engine verwenden. Besonders sinnvoll ist die Verwendung entsprechend für grafisch sehr anspruchsvolle Inhalte, die etwa WebGL oder WebVR verwenden. Aber auch vermeintliche Kleinigkeiten wie das Blinken eines Cursors in einem Eingabefeld werden darüber beschleunigt. Auszahlen soll sich der Webrender aber nicht nur auf vergleichsweise leistungsschwachen Laptops, sondern insbesondere auf Smartphones, deren CPU-Leistung oft eher schlecht ist, wohingegen die GPUs eine relativ gute Leistung bieten. Noch ist der Quantum Render aber nicht in den Firefox eingepflegt. Das soll erst im kommenden Jahr geschehen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Smarte Multi-Prozesse und Servo-Anleihen | Alles im Fluss |
Guten Tag, Das Problem ist das ich Firefox auf insgesamt sieben Rechner (und 5...
Ich habe heute meine Erfahrungen mit dem neuen Firefox gemacht. 3 Fenster mit jeweils 2...
Ist ganz einfach. Du gehst zuerst in deinen Profilordner. Wie du den findest ist hier...
Knapp 2 Monate nennst du genug Zeit? Da die meisten Addons von privaten Leuten...