Firefox: Neues Cache-Backend soll HTTP-Cache robuster machen
Mozilla arbeitet derzeit an einem neuen Cache-Backend, welches den HTTP-Cache von Firefox robust gegen Abstürze machen und die Programmoberfläche nicht zum Einfrieren bringen soll.
Nachdem sich ein größeres Entwickler-Team von Mozilla mit einem neuen API-Design für den HTTP-Cache von Firefox beschäftigt hat, haben Jan Bambas und Michal Novotný die letzten beiden Monate mit der Implementierung des neuen Backends verbracht und erste Test-Builds fertiggestellt, welche getestet werden können. Mit dem neuen Cache-Backend verfolgt Mozilla vor allem zwei Ziele: Zum einen soll der Cache robust gegen Abstürze werden. Bislang kann ein Absturz von Firefox oder das Killen des Firefox-Prozesses zum Verlust der Inhalte aus dem Cache führen. Zum anderen soll mit dem Cache in Verbindung stehendes Einfrieren der Benutzeroberfläche der Vergangenheit angehören. Erste Messergebnisse zeigen, dass man außerdem mit einer verbesserten Performance rechnen darf.
Es wird darauf hingewiesen, dass der Code in dieser Phase der Entwicklung noch sehr, sehr experimentell ist, weshalb diese Builds wirklich nur zum Testen sind. Auf seinem Blog hat Jan Bambas erste Messergebnisse veröffentlicht, welche genau das auch widerspiegeln; Tests mit einer MicroSD-Karte zeigen, dass spürbare Geschwindigkeitsvorteile erzielt werden können. Allerdings gibt es auch noch Situationen, in welchen das alte Backend schneller ist. Insbesondere im Test mit einer SSD sind derzeit noch keine Verbesserungen der Performance feststellbar. In den nächsten Wochen soll das neue Backend weiter optimiert werden, so dass das neue Cache-Backend dem bisherigen in allen Belangen überlegen ist.
Testing with a microSD card:
First-visit load
Full load | First paint | |
---|---|---|
mozilla-central | 16s | 7s |
new back-end | 12s | 4.5s |
new back-end and separate threads for open/read/write | 10.5s | 3.5s |
Reload, already cached and warmed
Full load | First paint | |
---|---|---|
mozilla-central | 7s | 700ms |
new back-end | 5.5s | 500ms |
new back-end and separate thread for open/read/write | 5.5s | 500ms |
Type URL and go, cached and warmed
Full load | First paint | |
---|---|---|
mozilla-central | 900ms | 900ms |
new back-end | 400ms | 400ms |
Type URL and go, cached but not warmed
Full load | First paint | |
---|---|---|
mozilla-central | 5s | 4.5s |
new back-end | ~28s | 5-28s |
new back-end and separate threads for open/read/write | ~26s | 5-26s |
Testing on an SSD disk:
Type URL and go, cached and warmed
Full load | First paint | |
---|---|---|
mozilla-central | 220ms | 230ms |
new back-end | 310ms | 320ms |
Type URL and go, cached but not warmed
Full load | First paint | |
---|---|---|
mozilla-central | 600ms | 600ms |
new back-end | 1100ms | 1100ms |
Interessanter Ansatz, den Mozilla da verfolgt. In dem Zusammenhang wärs auch noch interessant zu wissen, wie und ob Mozilla ebenfalls am Standardisierungsprozess des neuen HTTP 2.0 mitarbeitet, der von der IETF derzeit massiv vorangetrieben wird. Normalerweise ist Mozilla doch immer in irgendeiner Weise mit dabei und macht Vorschläge, wenn es um den technischen Fortschritt bei Webtechnologien geht.
Ich kann leider nicht sagen, inwieweit Mozilla in HTTP/2.0 involviert ist. Mozilla gibt zu solchen Dingen selbstverständlich Feedback, ich weiß allerdings nicht, inwieweit sich Mozilla aktiv an der Entwicklung beteiligt.
Noch ein Nachtrag zu HTTP/2.0, hier gibt es übrigens Testbuilds mit experimenteller HTTP/2.0-Unterstützung:
https://wiki.mozilla.org/Networking/http2