Apparat est un framework pour optimiser les fichiers ABC, SWC et SWF.
Il utilise les améliorations de TDSI et inclu :
* Compression
o 7-Zip DEFLATE compression
o LZMA compression
o ABC merging
o Constant pool sorting
o DefineBitsLossless2 to DefineBitsJPEG3/4 conversion
o Bytecode merging
o Bytecode replacements
o Flowgraph optimizations
o Sliding-window optimizations
* Code analysis
o UML diagram generation
o Bytecode flowgraph generation
o Static check for [Abstract] methods
o Detailed ABC information
o Code coverage instrumentation
o Typesafe trace() removal keeping side-effects
o ASMify existing code
* Optimization
o Generic peephole optimizations
o InlineExpansion
o MacroExpansion
o InlineAssembler
o Access to Alchemy's fast memory operations
o Special transformations for Alchemy-generated code
o C inspired Structure type
Il faut savoir que les fichiers compilés nativement avec flash / flex (mxmlc) sont très mal retranscrits en bytecode. Et c'est grâce à Apparat que vous pourrez optimiser ce bytecode et accélérer vos applications.
Commençons par Installer Apparat
Télécharger Apparat . Nous utiliserons dans ce tuto, la dernière version parue "apparat-1.0.RC8-bin"
Télécharger ensuite Scala
La version compatible avec Apparat 1 RC8 est scala 2.8.0. Mais si vous avez une autre version d'Apparat, l'application vous donnera au moment de la compilation, la bonne version à télécharger.
Installer Apparat
Commençons par créer un répertoire C:/tools/ par exemple, oû nous rangerons Scala et Apparat.
Dé zippez ensuite scala vers C:/tools/scala/, et apparat vers C:/tools/apparat/
C'est terminer pour cette étape, passons maintenant à la création d'un projet.
Création d'un projet d'exemple.
Téléchargez le projet PerfTest. Dans ce projet nous allons utiliser ANT pour compiler une version AS3 et une version optimisée avec Apparat.
Nous allons utiliser Flex Builder mais vous pouvez également compiler sous FlashDevelop / FDT.
Commencez par créer un nouveau projet Flex, en pointant vers le projet téléchargé.

Le projet perf_test apparait dans vos projets :

Il se compose de deux fichiers .as . le premier mesure le temps d'exécution de plusieurs fonctions de la classe Math native, pour 10 000 000 itérations. Le second fait la même chose, mais utilise la classe FastMath d'apparat. La particularité de cette classe est que les fonctions seront inscrites inline dans votre projet, ce qui rendra son exécution vraiment plus rapide après la compilation avec Apparat.
Il faut maintenant configurer le chemin vers apparat. Ouvrez le fichier build.properties, et renseignez les trois premières variables uniquement, vers votre SDK flex, Scala et Apparat. Si vous ne savez pas ou est votre sdk FLEX, faites un tour dans dans le dossier d'installation de flex builder dans le dossier sdk/. Sinon vous pouvez le télécharger sur le site d'adobe.

Il ne nous reste plus qu'à compiler !
Click-droit sur build.xml => éxecuter => Compilation ANT

Si tout se passe bien, voila ce que vous devriez avoir :

Deux fichiers .swf ont été exporté dans /bin/, la version as3, et la version apparat optimisée. Lancez les pour comparer le temps d'exécution. La version apparat se lance instantanément, tandis que la version AS3 normale, met plusieurs secondes avant de s'ouvrir. Je vous laisse admirer les différences de temps d'exécution des fonctions ! On passe clairement de 900 ms à 90ms !

Un autre exemple est disponible sur le site de Joa ebert, pour comparer les différences de frame rate sur 80.000 particules :
http://blog.joa-ebert.com/2010/05/26/new-apparat-example/
Enjoy

