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. Leiter*in Fachdienst IT/CIO
    Landkreis Märkisch-Oderland, Seelow
  2. Ingenieur für Applikation / Techniker für Applikation (m/w/d)
    Viscom AG, Hannover
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 Akademie
  1. C++ 20: Concepts - Ranges - Coroutinen - Module
    4.-8. Oktober 2021, online
  2. IT-Sicherheit für Webentwickler
    2.-3. November 2021, online
  3. Python kompakt - Einführung für Softwareentwickler
    28.-29. Oktober 2021, online
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
Star Trek: Enterprise
Mit Warp 5 zur vorzeitigen Absetzung

Vor 20 Jahren startete mit Enterprise die damals ungewöhnlichste Star-Trek-Serie. Das unrühmliche Ende nach vier Jahren erscheint heute unverdient.
Von Tobias Költzsch

Star Trek: Enterprise: Mit Warp 5 zur vorzeitigen Absetzung
Artikel
  1. TPM und Secureboot: Poettering will bessere Verschlüsselung unter Linux
    TPM und Secureboot
    Poettering will bessere Verschlüsselung unter Linux

    Mit Sicherheitstechniken von Windows, MacOS oder ChromeOS könnten übliche Linux-Distributionen nicht mithalten. Der Systemd-Gründer will das ändern.

  2. Security: Forscher veröffentlicht iOS-Lücken aus Ärger über Apple
    Security
    Forscher veröffentlicht iOS-Lücken aus Ärger über Apple

    Das Bug-Bounty-Programm von Apple ist vielfach kritisiert worden. Ein Forscher veröffentlicht seine Lücken deshalb nun ohne Patch.

  3. Echte Controller: Nintendo erweitert Switch Online um N64 und Mega Drive
    Echte Controller
    Nintendo erweitert Switch Online um N64 und Mega Drive

    Ein kostenpflichtiges Upgrade für Nintendo Switch Online bringt Klassiker wie Mario Kart 64 und Ecco the Dolphin auf die Switch.

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 • Samsung G7 31,5" WQHD 240Hz 499€ • Lenovo-Laptops zu Bestpreisen • 19% auf Sony-TVs bei MM • Samsung SSD 980 Pro 1TB 150,50€ • Dualsense-Ladestation 35,99€ • iPhone 13 erschienen ab 799€ • Sega Discovery Sale bei GP (u. a. Yakuza 0 4,50€) [Werbung]
    •  /