Original-URL des Artikels: https://www.golem.de/news/mozilla-kompakte-string-kodierung-in-firefox-spart-speicher-1407-108042.html    Veröffentlicht: 22.07.2014 14:21    Kurz-URL: https://glm.io/108042

Mozilla

Kompakte String-Kodierung in Firefox spart Speicher

Die Javascript-Engine von Firefox belegt künftig nur noch 1 statt wie bisher 2 Byte für die meisten Zeichen in Javascript. Die verwendete Latin1-Kodierung spart Speicher und beschleunigt den Browser sogar ein wenig.

Statt des bisher verwendeten UTF-16-Encodings wird die Javascript-Engine in Firefox künftig, wann immer möglich, die Latin1-Kodierung verwenden. Einzelne Zeichen belegten dann nur noch 1 Byte, statt wie bisher zwei, wie Mozilla-Entwickler Jan de Mooij erklärt. Das sei eine rein interne Veränderung, das Verhalten von Javascript-Code werde dadurch nicht beeinflusst.

In den meisten Situationen reduziert diese neue Methode den Speicherbedarf, wie zu erwarten, fast um die Hälfte. In einem Test mit dem Code von GMail ließen sich dabei etwa 90 Prozent der Strings in dem neuen Format repräsentieren. Einige längere Strings verwendeten aber nach wie vor das alte Format, da sich diese nicht umwandeln ließen.

Internationale Webseiten kein Problem

Dieser Ansatz funktioniere auch bei Webseiten, die keine der westlichen Sprachen benutzten. Denn auch diese verwendeten für "Eigenschaftsnamen, DOM-Strings und andere Identifier sehr viele Latin1-Strings". Selbst unter den Top-10 der chinesischen Webseiten müssten lediglich 28 Prozent des Codes weiterhin in dem alten Format gespeichert werden, versicherte der Entwickler, der lediglich zwei Monate an der Umstellung gearbeitet habe.

Neben der eigentlichen Umsetzung in JSString überarbeitete de Mooij auch sämtliche Funktionen in der Javascript-Engine Spidermonkey ebenso wie in der Rendering-Engine Gecko. Einige Operationen mussten aber in der bisherigen Form erhalten bleiben, da sonst noch größere Arbeiten an dem gesamten Code des Firefox angestanden hätten. Die Funktionsweise soll das aber nicht beeinträchtigen.

Dank der neuen Repräsentation der Strings können auf 64-Bit-Systemen bis zu 15 Zeichen lange Ketten inline gespeichert werden, was unter anderem die Leistung verbessern kann. Letzteres sei zwar nicht das Hauptziel der Entwicklung gewesen, zeige sich dennoch in Benchmarks. So laufe der Sunspider-Teil für reguläre Ausdrücke nun um 36 Prozent schneller.

Der Code befindet sich derzeit in Firefox Nightly und soll mit Firefox 33 Mitte Oktober dieses Jahres erscheinen.  (sg)


Verwandte Artikel:
Juli 2018: Chrome bestraft Webseiten ohne HTTPS   
(09.02.2018, https://glm.io/132689 )
Mozilla: Firefox soll mit Werbung in Pocket experimentieren   
(29.01.2018, https://glm.io/132450 )
Nidium: Eine neue Art von Browser-Engine   
(04.09.2013, https://glm.io/101381 )
Monero: Werbeanzeigen mit verstecktem Kryptomining auch auf Youtube   
(29.01.2018, https://glm.io/132449 )
Freie Schriften: Paratype PT Serif unter der OFL erschienen   
(04.01.2011, https://glm.io/80466 )

© 1997–2020 Golem.de, https://www.golem.de/