Geburtshintergrund
Der Flash- Compiler (ASC, ActionScript Compiler) von Adobe ist in seiner Leistung zu alt und die virtuelle Flash-Maschine bietet noch viel Raum für Leistungsverbesserungen. Flash wird oft als Spielzeug oder scherzhaft als CPU-Schwein bezeichnet. Im Allgemeinen optimieren wir eine SWF-Datei selten manuell. In den meisten Fällen kann sie gut ausgeführt werden, aber wenn die Größe einer SWF-Datei zu groß ist, ist die Ladezeit zu lang oder die Codeausführungszeit ist zu lang, was zu Frames führt Wenn die Rate zu hoch ist, müssen wir über eine Optimierung der SWF-Datei nachdenken, z. B. durch Optimierung des Codes und Komprimierung statischer Ressourcen (Bilder, Videos usw.). Allerdings ist die Leistungsverbesserung durch manuelle Optimierung sehr begrenzt. Mehr Optimierungsaufgaben sollten dem Compiler überlassen werden. Glücklicherweise kann uns das Apparat- Framework dabei helfen, uns von dem Albtraum der manuellen Optimierung zu befreien daraus optimiert werden. Joa Ebert, der Autor von Apparat, verfügt über fundierte Einblicke in den Bereich der Flash-Leistungsoptimierung. Auf der diesjährigen FlashAndTheCity -Konferenz wurde Joa für seine herausragende Arbeit mit zwei Preisen ausgezeichnet : „The Most Genius Flash Developer in 2010“ und „The Most Outstanding Contributor in 2010“. „ Hauptpreis.
Umgebung erstellen
Das Apparat-Framework wird über Scale geschrieben. Bevor Sie es üben, müssen Sie Scala 2.8.0 und Java 1.6 installieren. Nach dem Einrichten dieser grundlegenden Betriebsumgebungen (die zur Umgebungsvariablen PATH hinzugefügt werden müssen) kann das neueste Installationspaket (derzeit 1.0RC8) von Google Code heruntergeladen werden. Extrahieren Sie es nach dem Herunterladen in einen neuen Ordner. Die enthaltenen Dateien sind:
Apparat bietet viele Befehlszeilentools wie tdsi, Stripper, Reducer usw. sowie einige sehr spezielle ActionScript-APIs (die in SWC-Dateien vorhanden sind). Schauen wir uns als Nächstes an, wie Apparat Flash beschleunigt.
Bytecode optimieren
Die Kernfunktion von Apparat ist TAAS (Three Address ActionScript Compiler). TAAS ändert keine Zeile von ActionScript. Es kann allein durch die Verwendung gewöhnlicher Optimierungstechniken erhebliche Leistungsverbesserungen erzielen. Anders als Adobes Compiler ASC analysiert, reorganisiert und setzt Apparat kompilierte SWF- und SWC-Dateien neu zusammen.
Der Bytecode in der Flash-Virtual-Machine AVM ist schwer zu optimieren und wandelt den stapelbasierten Bytecode zunächst in CFG (Control Flow Graph) um Address Code) , d. h. TAAS (Three Address ActionScript).
Mit TAC/TAAS kann Flash-Bytecode basierend auf Compiler-Optimierungstechniken wie Inline-Erweiterung , Kopierausbreitung , konstantes Falten , Eliminierung von totem Code usw. neu optimiert werden.
Apparat bietet mehrere nützliche SWC-Dateien mit effizienteren APIs und enthält sogar Alchemy-APIs, die in ActionScript noch nicht verfügbar sind. Nachdem SWF diese APIs verwendet, wird die Ausführungseffizienz erheblich verbessert. Das Prinzip besteht darin, dass Apparat eine Inline-Optimierung für den entsprechenden Code durchführt. Das Befehlsformat zur Optimierung des Bytecodes lautet:
tdsi -i input.swf -o output.swf
Quelle: Koubei.com UED-Team