Tutorial – Installation de HFCD Compiler Flex
Dans ce tutorial Flex, je vais détailler les étapes de l'installation d'HFCD (HellFire Compiler Daemon). HFCD est un produit extrêmement intéressant puisqu'il vous permet d'externaliser la compilation de vos applications/librairies Flex vers un Daemon (service Java). Ce Daemon peut tourner sur votre machine ou sur une machine distante.
Grâce à ce système, vous allez pouvoir diviser vos temps de compilation, parfois par un facteur 2-3 ce qui vous permettra de vous concentrer sur le développement de votre application (et pas simplement regarder Flex Builder et son "Building Workspace…")
Téléchargement d'HFCD Flex Compiler et du fichier licence.dat
Pour télécharger le compilateur HCFD, il vous suffit de vous rendre sur la page de téléchargement de son créateur:
Page de téléchargement HFCD pour Flex 3
Page de téléchargement HFCD pour Flex 4
Sur cette page, pensez bien à télécharger le fichier licence.dat (HFCD est en Release Candidate, il sera bientôt en production). Il vous sera indispensable pour l'installation. Ce fichier ce trouve sur la page de téléchargement dans la catégorie "Evaluation License".
Téléchargez ensuite le compilateur correspondant à votre version du SDK Flex et à votre OS. HFCD est disponible pour les versions du SDK Flex suivantes:
- 3.2.0
- 3.3.0
- 3.4.1
- 3.5.0
- 4.0
Le téléchargement est terminé, vous pouvez maintenant passer à l'installation.
Installation d'HFCD Compiler
Une fois installé, HFCD va modifier le compilateur par défaut de vos applications. Si vous voulez tester sans ne prendre "aucun risque", créez tout d'abord un nouveau Workspace Eclipse/Flex Builder. Vous pourrez travailler avec HFCD dans ce workspace et faire ensuite le switch quand vous vous sentez prêt.
Lancez l'exécutable (pour les systèmes Unix-Based, vous devriez savoir vous débrouiller
).

Renseignez les différentes valeurs demandées (répertoire d'installation d'HFCD, répertoire de votre Flex Builder, répertoire de votre SDK Flex).

Quand on vous demandera le fichier de licence, pointez vers le fichier licence.dat que vous avez téléchargé plus haut.
Poursuivez l'installation.
Démarrage du service de compilation HFCD
Comme précisé plus haut, la compilation va s'exécuter sur un service Java qu'il vous faut maintenant lancer. Je vais présenter la version courte mais sachez que vous pouvez faire tourner plusieurs instances d'HFCD sur plusieurs ports différents si vous avez un server 8-core avec un maximum de RAM par exemple (plus d'informations sur cette feature).
Rendez-vous dans le répertoire d'installation de HFCD puis /server/bin/ (C:\Program Files (x86)\HFCD\3.2.0\server\bin) et lancez "hfcd.exe".

Par défaut, le serveur va utiliser les ports 50207 et 50208.
Utilisation d'HFCD dans Flex Builder (ou dans Eclipse)
Une fois HFCD installé, il ne vous reste plus qu'à relancer Flex Builder. Vous devriez avoir une vue supplémentaire ouverte:

C'est dans cette vue que vous pourrez voir l'avancement de vos compilations (Monitoring). Si le server HFCD est bien lancé (étape précédente), vous devriez avoir:

Pour l'instant, vos projets sont encore configurés pour utiliser votre SDK Flex par défaut (SDK Flex 3.2 pour ma part). Il vous faut préciser que vous souhaiter utiliser le SDK HFCD. Pour cela, rendez-vous dans Windows > Preferences > Flex > Installed Flex SDKs:

Par défaut, HFCD désactive l'option "Build Automatically". Notez qu'il est conseillé de ne pas être en Build Automatically. Pour une utilisation optimale d'HFCD, faîtes un Ctrl+B (Build All) lorsque vous voulez compiler. Cela lui permettra de réaliser des builds simultanés.
Si vous voulez toutefois remettre ce paramètre, rendez-vous dans les préférences de Flex Builder / Eclipse:

Faîtes un Clean (Project > Clean) sur votre projet et vous devriez avec une nouvelle entrée dans le HFCD View:
![]()
Votre projet a bien été compilé par HFCD (vous pouvez le voir dans la console du serveur hfcd.exe) et votre SWF se trouve dans votre répertoire de debug comme si vous l'aviez compilé normalement. Dans un prochain post, je vais faire une comparaison des temps de compilation.
Optimisation des temps de compilation
Le but d'HFCD est avant tout, de réduire vos temps de compilation. Pour cela, HFCD va réaliser une analyse de vos projets lors de la première compilation. C'est pour cela que la première compilation peut être plus longue qu'une compilation normale et faire monter le service en RAM.
Une fois que vos projets/librairies ont été compilés, il faut sauvegarder cette configuration afin qu'il puisse optimiser les compilations suivantes. Pour cela, après votre première compilation avec succès, il vous faudra appuyer sur le bouton "Save HFCD Build Data":

Une fois sauvé, appuyez sur le bouton "Show HFCD Memory Usage" juste à côté pour libérer la RAM de votre service. Normalement, votre Heap devrait tomber et la RAM devrait se libérer.
Pour expliquer rapidement (et sans tout aborder) ce qu'HFCD optimise, il faut savoir qu'il réalise des "groupes de build", suivant les dépendances entres les projets. Par exemple, dans mon cas, j'ai 10 librairies et un projet. 3 des librairies sont indépendantes (aucun dépendance sur une autre librairie). Elles vont pouvoir être compilées en même temps sans problème. Ensuite, 4 autres dépendent des trois premières mais n'ont aucune dépendance entre elles. Celles-ci pourront aussi être buildées en même temps. Et le reste des librairies dépendent des 4 dernières, elles pourront donc être compilées en même temps.
Lorsque Flex Builder effectue la compilation, il va effectuer les compilations les unes à la suite des autres. La méthode HFCD permet de gagner beaucoup de temps, surtout sur une machine disposant d'une grande puissance processeur.
Une fois les informations de build sauvées pour votre projet, vous pouvez commencer à compiler normalement, et à apprécier les temps de compilation moins longs
.
Compilation à plusieurs développeurs
Le mieux pour l'utilisation d'HFCD, est d'utiliser une machine dédiée qui va réaliser les build. En effet, si vous les effectuez sur votre poste, vous serez toujours bridé par la puissance de votre machine. Le mieux est d'installer HFCD sur un serveur avec le maximum de processeurs et de RAM. Mais vous n'êtes pas obligé d'avoir un serveur de build pour chaque développeur, vous pouvez faire pour que chaque développeur aille taper sur plusieurs services, en utilisant des ports différents. Par défaut, HFCD utilise les ports 50207 et 50208 quand vous le lancez en ligne de commande.
Pour lancer HFCD sur les ports 50210 et 50211, il vous suffit de lancer hfcd avec cette ligne de commande (sur Linux pour l'exemple):
> ./hfcd 50210 50211
Pour lancer plusieurs instance sur plusieurs ports, même combat:
> ./hfcd 50201 50202 & > ./hfcd 50203 50204 & > ./hfcd 50205 50206 & > ./hfcd 50207 50208 &
Dans la fenêtre de Preferences d'HellFire Compiler, vous pourrez changer les ports d'accès de chaque développeur. Ainsi, si un seul développeur compile à la fois, il va pouvoir bénéficier de toute la puissance de la machine (accès CPU complet). En cas de "conflit" (deux développeurs qui font un build simultanément), les ressources seront partagées. Ce scénario est tout de même bien plus avantageux qu'un HFCD tournant en local.
Vous avez tenté l'expérience HFCD?
Si vous trouvez que vos temps de compilation sont assez ennuyeux pour être réduits, je vous conseille fortement d'utiliser HFCD. Testez le au moins, si vous ne voyez pas d'amélioration (ce serait étonnant), tampis.
Pour tout retour d'expérience, vous pouvez laisser un commentaire sur ce billet ou contactez Clement Wong (le concepteur) à l'adresse hfcd AT stopcoding POINT org.
Articles similaires
- Flex Modules – Compilation de modules (Flex Builder et mxmlc)
- Flex et Air – Upgrade à Flex SDK 3.2 et projets Air qui ne se lancent plus [Résolu]
- Flex RSL – Utilisation de RSL standards
- AIR Mobile – Déployer des IPA sans iTunes avec EasyIPA (application AIR)
- Flash, Flex et intégration continue: Le guide complet (SVN, Maven, Hudson & co)
Aucun trackbacks pour l'instant





