Dis, cela prend combien de temps pour compiler un Mozilla Firefox ?

Adepte des versions de développement des logiciels de la Fondation Mozilla depuis Mozilla 0.8 (en gros depuis février 2001), j’ai toujours voulu connaître le temps nécessaire à la compilation d’une version « from scratch », en clair, en repartant de zéro.

Ayant récupéré le code source en utilisant les instructions disponibles à l’adresse https://developer.mozilla.org/En/Developer_Guide/Source_Code/Mercurial, en clair en entrant sur une ligne de commande :

hg clone http://hg.mozilla.org/mozilla-central/ src
cd src

Puis en actualisant le code source avec un petit :

hg --verbose pull -u

J’ai ensuite utilisé le fichier .mozconfig suivant :

#
# See http://www.mozilla.org/build/ for build instructions.
#

export AUTOCONF=autoconf-2.13

. $topsrcdir/browser/config/mozconfig

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir-fx

# Options for ‘configure’ (same as command-line options).
ac_add_options –enable-optimize
ac_add_options –disable-debug
ac_add_options –disable-tests

Pour des raisons techniques, il faut installer l’ancienne version d’autoconf, connue sous le nom d’autoconf-compat sur Archlinux.

J’ai divisé la compilation en deux temps : un pour les dépendances, l’autre pour la compilation proprement dite.

Pour les dépendances :

make -f client.mk depend

Pour la compilation :

make -f client.mk build

Et le temps nécessaire ? Il suffit d’ajouter la commande time devant les commandes make.

Pour les dépendances :

real    2m49.202s
user    1m30.977s
sys    0m44.534s

Pour la compilation :

real    43m33.043s
user    39m33.562s
sys    3m38.266s

Pour info, ma configuration :

Acer Aspire 5520, donc :

  • AMD Athlon X2 TK 55 (800 à 1800 Mhz)
  • 2 GiO de mémoire vive
  • 120 GiO de disque dur
  • Circuit vidéo GeForce7000M

Sur le plan logiciel :

  • Archlinux 2009.02 à jour avec le dépot testing activé
  • Gnome 2.28.0
  • gcc / g++ 4.4.1

45 minutes, sur un portable acheté en février 2008, ce n’est pas si mal que cela 😉

Sorties libre en’vrac ;)

Un petit « en vrac' » consacrée aux sorties liées au logiciel libre depuis le début de la semaine :

WebGL à l’action.

Mozilla Firefox 3.7 proposera l’extension WebGL qui permet d’avoir la 3D dans le navigateur. Vladimir Vukićević explique dans ce billet comment activer l’extension.

Après avoir récupéré une nocturne récente, et une fois la manipulation décrite effectuée – qui nécessite un redémarrage de Mozilla Firefox pour être reconnue – on peut avoir des effets en 3D dans le navigateur.

Voici quelques exemples :

Et une petite vidéo de démo que j’ai faite et insérée sur youtube :

Encore une utilisation de moins pour le greffon flash ? 😉

Arrivée de TraceMonkey dans Minefield en 64 bits !

Ce moteur de compilation jit du langage javascript intégré dans Mozilla Firefox depuis sa version 3.5 n’existe pas pour les versions 64 bits (linux et MacOS-X, quand à Windows 64bits, je ne saurais dire) du navigateur.

Cependant, en lisant ce billet dans mon agrégateur de flux j’ai appris que le moteur de compilation est enfin activé. Mais uniquement dans le code du tronc, qui donnera le successeur de Namoroka (alias Mozilla Firefox 3.6) et donc qui ne sortira que d’ici un gros semestre et demi, si on en croit la feuille de route prévisionnelle :

  • Mozilla Firefox 3.6 alias Namoroka : fin 2009
  • Mozilla Firefox 3.7 alias ? : D’ici juin 2010
  • Mozilla Firefox 4.0 alias ? : D’ici fin 2010

Il a d’abord été intégré dans la branche tracemonkey, et un peu plus récemment dans le code même du tronc qui donnera Mozilla Firefox 3.7, si on en croit ce rapport d’ajout de code.

Bref, le moteur de compilation du javascript de Mozilla Firefox pour les versions 64 bits du logiciel (même s’il n’y a pas de version officielle, sauf celle des distributions linux en version 64 bits) profiteront d’une version dopée du rendu javascript comme c’est déjà le cas pour les version 32 bits (Windows, linux, MacOS-X et compagnie).

Ayant mis à jour ma copie du code source du tronc, j’ai lancé une compilation avec le .mozconfig suivant :


export AUTOCONF=autoconf-2.13
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir-fx
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-tests

Après, il faut attendre 45 minutes après avoir entré la commande « magique » : make -f client.mk build

Pour comparer, j’ai pris une compilation plus ancienne – en 64 bits – de Minefield qui n’a pas TraceMonkey activé. On peut trouver la dite compilation à l’adresse :

http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2009-09-16-03-mozilla-central/

Adresse qui ne sera surement plus valide d’ici le mois d’octobre 2009, cependant.

Pour voir le gain de vitesse apporté par le moteur de compilation, je me base sur le site de test SunSpider, sur celui de Celtic Kane.

Pour SunSpider :

Sans TraceMonkey : 5944 ms.

Avec TraceMonkey : 2860 ms… Soit environ 51,88% plus rapide… C’est pas si mal 😉

Pour Celtic Kane :

Sans TraceMonkey : 547

Avec TraceMonkey : 488 ; soit environ 10,94% plus rapide.

Je pense faire un prochain test avec le moteur webkit (via Arora) et avec la version 10 d’Opera en 64 bits aussi.

En vrac’ rapide et libre.

Une liste rapide des nouveautés du monde libre en ce samedi 8 août 2009.

C’est tout pour aujourd’hui. Bon week-end.