fond de naissance
Le compilateur Flash d'Adobe (ASC, ActionScript Compiler) est trop "hier" en termes de performances, et la machine virtuelle Flash a encore beaucoup de marge d'amélioration en termes de performances. Flash est souvent traité comme un jouet ou appelé en plaisantant un porc de processeur. De manière générale, nous optimisons rarement un SWF manuellement. Dans la plupart des cas, il peut fonctionner correctement, mais lorsque la taille d'un fichier SWF est trop grande, le temps de chargement est trop long, ou le temps d'exécution du code est trop long, provoquant le frame. Le taux est trop élevé. Lorsqu'il est faible, il faut envisager d'optimiser SWF, comme par exemple en rationalisant le code et en compressant les ressources statiques (images, vidéos, etc.). Cependant, l'amélioration des performances produite par l'optimisation manuelle est très limitée. Plus de tâches d'optimisation devraient être laissées au compilateur. Heureusement, le framework Apparat peut nous aider à nous libérer du cauchemar de l'optimisation manuelle. en être optimisé. Joa Ebert, l'auteur d'Apparat, possède une connaissance approfondie du domaine de l'optimisation des performances Flash. Lors de la conférence FlashAndTheCity de cette année, le travail exceptionnel de Joa lui a valu deux prix : "Développeur Flash le plus génial en 2010" et "Contributeur le plus remarquable en 2010". " Grand prix.
Construire un environnement
Le framework Apparat est écrit via Scale. Avant de le pratiquer, vous devez installer Scala 2.8.0 et Java 1.6. L'installation de 7-zip est facultative. Après avoir configuré ces environnements d'exploitation de base (qui doivent être ajoutés à la variable d'environnement PATH), le dernier package d'installation (actuellement 1.0RC8) peut être téléchargé depuis Google Code . Après le téléchargement, extrayez-le dans un nouveau dossier. Les fichiers inclus sont :
Apparat fournit de nombreux outils en ligne de commande, tels que tdsi, stripper, réducteur, etc., ainsi que des API ActionScript très spéciales (existantes dans les fichiers SWC). Voyons ensuite comment Apparat accélère Flash.
Optimiser le bytecode
La fonction principale d'Apparat est TAAS (Three Address ActionScript Compiler). TAAS ne modifiera aucune ligne d'ActionScript. Il peut obtenir des améliorations de performances considérables en utilisant simplement des techniques d'optimisation ordinaires. Différent du compilateur ASC d'Adobe, Apparat analyse, réorganise et réassemble les fichiers SWF et SWC compilés.
Le bytecode de la machine virtuelle Flash AVM est basé sur la pile. Cette structure est difficile à optimiser. Apparat convertit d'abord le bytecode basé sur la pile en CFG (Control Flow Graph), puis le convertit en TAC sans pile via CFG (Three. Code d'adresse) , c'est-à-dire TAAS (Three Address ActionScript).
Avec TAC/TAAS, le bytecode Flash peut être réoptimisé sur la base de techniques d'optimisation du compilateur, telles que l'expansion en ligne , la propagation de copie , le repliement constant , l'élimination du code mort , etc.
Apparat fournit plusieurs fichiers SWC utiles avec des API plus efficaces et inclut même des API Alchemy qui ne sont pas encore disponibles dans ActionScript. Une fois le SWF utilisant ces API traité par Apparat, l'efficacité d'exécution sera grandement améliorée. Le principe est qu'Apparat effectue une optimisation en ligne sur le code correspondant. Le format de commande pour optimiser le bytecode est :
tdsi -i entrée.swf -o sortie.swf
Source : équipe Koubei.com UED