Superpack: Facebook nutzt Compiler-Technik zur App-Kompression

Mit Superpack kann Facebook seine Android-Apps um rund 20 Prozent kleiner packen als bisher. Möglich macht das Compiler-Technik.

Artikel veröffentlicht am ,
Facebook macht Apps mit Superpack kleiner.
Facebook macht Apps mit Superpack kleiner. (Bild: Facebook)

Das Engineering-Team von Facebook beschreibt in einem aktuellen Blogeintrag mit Superpack eine neue Kompressionstechnik, die das Unternehmen bereits intern einsetzt. Dank neuartiger Methoden sollen die Android-Apps des Konzerns damit rund 20 Prozent kleiner sein als die standardmäßig genutzte Zip-Komprimierung.

Stellenmarkt
  1. Mitarbeiter Softwarelogistik Automotive (m/w/d)
    DRÄXLMAIER Group, München
  2. Systemarchitekt:in Audio / Video Streaming (m/w/d)
    Westdeutscher Rundfunk, Köln
Detailsuche

Um diese auch im Vergleich zu anderen bisherigen Kompressionstechniken deutliche Steigerung zu erreichen, setzt Facebook unter anderem auf eine neuartige Idee, die Compiler-Technik mit modernen Kompressionstechniken kombiniert. Grundlage der Idee ist außerdem die Kolmogorow-Komplexität, wonach ein Programm, das Daten erzeugt, kleiner sein kann als die Auflistung der Daten selbst.

Dazu heißt es in dem Blog: "Die Formalisierung der Komprimierung als generativer Prozess, der kleine Programme erzeugt, bietet erhebliche Vorteile. Es gibt dem Datenkompressionsentwickler Zugriff auf eine Fundgrube ausgereifter Compiler-Tools und -Techniken, die bis zum Ende der Datenkompression wiederverwendet werden können". Dazu gehören das Parsen, Code-Erzeugung oder auch SMT-Solver.

Compiler-Technik zur Kompression

Wie erwähnt kombiniert Facebook dies mit bestehenden Kompressionstechniken: "Die Effektivität von Superpack liegt in seiner Fähigkeit, diese Compiler-Techniken mit denen zu verbinden, die in der Mainstream-Datenkomprimierung verwendet werden. Semantisches Wissen aus dem Compiler-Teil von Superpack führt zu einem verbesserten LZ-Parsing (dem Komprimierungsschritt, der Redundanz eliminiert) sowie zu einer verbesserten Entropiecodierung (der Schritt, der kurze Codes für häufige Informationen erzeugt)".

Golem Karrierewelt
  1. DP-203 Data Engineering on Microsoft Azure: virtueller Vier-Tage-Workshop
    12.-15.09.2022, virtuell
  2. ITIL 4® Foundation: virtueller Zwei-Tage-Workshop
    11./12.08.2022, virtuell
Weitere IT-Trainings

Beim LZ-Parsing werden von Superpack Daten etwa auf Grundlage des AST (Abstract Syntax Tree) gruppiert. Für die Entropiecodierung setzt Superpack auf Asymmetric Numeral Systems (ANS), das Facebook etwa bereits in Zstandard nutzt. Auch hierfür setzt Facebook wiederum auf Informationen über die Datenstruktur aus der Compiler-Analyse.

Für unstrukturierte Daten setzt Facebook auf eine weitere Technik: "Superpack versucht, den Werten Struktur zu verleihen, indem es sie zum Zeitpunkt der Komprimierung in Programme umwandelt. Dann werden die Programme zur Dekompression interpretiert, um die Originaldaten wiederherzustellen". Genutzt werde dies etwa für Referenzen in dem Dex-Bytecode der App. Zusätzlich dazu kommt Superpack noch für ARM-Maschinencode zum Einsatz sowie für den von Facebook erstellten Hermes-Bytecode für Javascript.

Handbuch für Softwareentwickler: Das Standardwerk für professionelles Software Engineering

Superpack ist in Ocaml und C geschrieben und als asymmetrisches Kompressionsverfahren gedacht. Das heißt, das Dekomprimieren sollte schnell sein, das Komprimieren darf aber langsam sein. Immerhin geschieht dies im Fall der Facebook-Apps vergleichsweise wenig und es stehen viele Ressourcen dafür bereit.

Noch fehlt Superpack laut Facebook aber eine gute Integration in die Werkzeuge von Android, etwa um Delta-Updates besser mit Hilfe der neuen Technik komprimieren zu können. Darüber hinaus plant das Team, die Technik so ähnlich auch für iOS einzusetzen. Außerdem heißt es: "Wir könnten das Offenlegen von Superpack als Open Source in Betracht ziehen". So weit ist es offenbar aber noch nicht.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Framework Laptop 2 im Test
In zehn Minuten zum neuen Prozessor im Notebook

Der Framework Laptop 2 bringt Intels bessere Alder-Lake-Chips. Statt neu zu kaufen, können wir unseren alten Laptop auch einfach aufrüsten.
Ein Test von Oliver Nickel

Framework Laptop 2 im Test: In zehn Minuten zum neuen Prozessor im Notebook
Artikel
  1. Rollerhersteller: Niu setzt auf Natrium-Ionen-Akkus
    Rollerhersteller
    Niu setzt auf Natrium-Ionen-Akkus

    Niu will im kommenden Jahr ein Zweirad mit Natrium-Ionen-Akku auf den Markt bringen. Grund sind die steigenden Preise für Lithium-Akkus.

  2. bZ4X: Toyota bietet Rückkauf seiner zurückgerufenen E-Autos an
    bZ4X
    Toyota bietet Rückkauf seiner zurückgerufenen E-Autos an

    Toyota bietet Kunden den Rückkauf seiner Elektro-SUVs an, nachdem diese im Juni wegen loser Radnabenschrauben zurückgerufen wurden.

  3. Vom Anfänger zum Profi: Was macht einen Senior-Entwickler aus?
    Vom Anfänger zum Profi
    Was macht einen Senior-Entwickler aus?

    Zeit allein macht einen Juniorentwickler nicht zu einem Senior. Wir geben Tipps für den Aufstieg.
    Ein Ratgebertext von Rene Koch

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MindStar (Gainward RTX 3070 559€, ASRock RX 6800 639€) • WD Black SSD 2TB m. Kühlkörper (PS5-komp.) 219,90€ • Gigabyte Deals • Alternate (DeepCool Wakü 114,90€, PC-Netzteil 79,90€) • AOC GM200 6,29€ • be quiet! Deals • SSV bei Saturn (u. a. WD_BLACK SN850 1TB 119€) [Werbung]
    •  /