Rückkehr zu Java: Google Sheets mit WebAssembly und Garbage Collection

Die Tabellenkalkulation Sheets rechnet jetzt doppelt so schnell: An der Ablösung der JavaScript-Engine und der Rückkehr zu Java arbeitet Google seit Jahren.

In Pocket speichern vorlesen Druckansicht 45 Kommentare lesen
Google Chrome Icon mit Zeichnung in Chrome Farben

(Bild: iX)

Lesezeit: 2 Min.

Doppelt so schnelle Berechnungen will Google in Sheets erreichen – Voraussetzung für eine zackige Tabellenkalkulation ist zum Start jedoch Chrome oder Microsoft Edge. Künftig sollen auch Firefox und Apple Safari als unterstützte Webbrowser folgen.

Unter der Haube ist für die verdoppelte Berechnungsgeschwindigkeit die WebAssembly Garbage Collection (WasmGC) verantwortlich, die es Google ermöglicht, mit Sheets zu Java zurückzukehren. Microsoft Edge basiert auf Chromium – zu anderen hierauf aufsetzen Webbrowsern äußert sich Google in der Ankündigung nicht.

Ursprünglich basierte die für die Berechnungen verantwortliche Engine schon einmal auf Java. Diese Implementierung stammte noch aus dem Jahr 2006 und war darauf ausgelegt, alle Berechnungen auf Google Server auszulagern. Seit 2013 schwenkte Google jedoch zu lokalen Berechnungen im Browser mit JavaScript um. Damit beide Versionen exakt die gleichen Ergebnisse berechnen, fügten die Entwickler einen Validierungsmechanismus in Sheets hinzu.

Der gleiche Validierungsmechanismus verglich obendrein die Geschwindigkeit der Berechnungen – mit dem ernüchternden Ergebnis, dass die Java Script-Version der Engine mehr als dreimal so langsam wie die alte Java-Implementierung ist. Besonders deutlich wird das bei großen Tabellen, wie aus dem Blogbeitrag Googles hervorgeht.

Google arbeitet daher seit 2020 an der Rückkehr zu Java über WebAssembly (Wasm), einer Browser-Plattform, auf der andere Programmiersprachen wie C oder Rust laufen, die von Wasm dann zu JavaScript umgewandelt werden. Für eine performante Verwendung von Java ist ein Garbage Collector erforderlich, den Google nun mit WasmGC in den produktiven Einsatz bringt.

Während der Entwicklung schrieben die Programmierer einen speziellen Compiler für Wasm, um die alten JavaScript-Bibliotheken von Sheet zu ersetzen. Ferner nahm das Validieren der mathematischen Berechnungen viel Zeit in Anspruch. Ein erster Prototyp war zum Beginn des Jahres 2022 fertig.

Allerdings war dieser zum Start doppelt so langsam wie die JavaScript-Version. Hiernach übernahmen die Entwickler Optimierungen aus der Java Virtual Machine (JVM) und V8, setzten auf stärker optimierte Browser-APIs und entfernten JavaScript spezifische Code-Muster. Anschließend erreichten Sie den jetzigen, performanteren Stand, der nun bei den Nutzern ankommt.

Die Ankündigung und den detaillierten Beitrag zur Entwicklung finden sich in Googles Blogs.

(fo)