Zucchini und Assembler für kleinere Chrome-Updates

Google hat ein Verfahren entwickelt, mit dem sich Updates binärer Programme drastisch verkleinern lassen.

In Pocket speichern vorlesen Druckansicht 51 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Christian Kirsch

Mit einer neuen Technik will Google die Updates für seinen Chrome-Browser deutlich verkleinern und dadurch Server und Netz entlasten. In einem Blog-Beitrag beschreibt Stephen Adams die "Courgette" (französisch für Zucchini) genannte Technik. Bislang habe man bsdiff verwendet, um Unterschiede in den Binärdateien der Browser-Versionen aufzuspüren. "Wir sind große Fans von bsdiff – es ist klein und funktioniert besser als alles andere, was wir probiert haben."

Allerdings sei die Datenmenge, die das Programm als Differenz zwischen zwei Versionen von Chrome ermittelte, zu groß gewesen. Dass es sich bei den beiden Dateien um ausführbaren Code handele, habe bsdiff nicht erkennen können. Diese Information nutzten die Google-Entwickler, um das Verfahren zu verbessern.

So verwendet Courgette einen einfachen Disassembler, der aus dem Binär- einen Pseudo-Assembler-Code erzeugt. Diesen Code wendet ein simpler Assembler im Client auf den Browsercode an. Die Details des Verfahrens beschreiben die Chrome-Entwickler auf ihrer Webseite. Nach eigenen Angaben haben sie mit ihrer Technik die Größe des Chrome-Updates von Version 190.1 auf 190.4 von rund 10 MByte (komplettes Executable) auf 78.848 Bytes mit Courgette reduzieren können. Die bsdiff-Variante hatte immerhin noch rund 700 KByte. (ck)