[Brève] Les 20 lignes qui font demarrer Firefox 4.0 2x plus vite

 

Même si Firefox 4.0 pointe le bout de son museau (voir ici pour l’essayer sans l’installer), le navigateur de la fondation Mozilla a encore des réserves pour s’améliorer. Notamment sur les performances.

Et pas que celles de la navigation où la version 4 fait déjà des merveilles. Le temps de démarrage de Firefox m’importe aussi.

fille firefox 228x300 [Brève] Les 20 lignes qui font demarrer Firefox 4.0 2x plus viteIl se pourrait bien qu’une petite révolution à ce sujet soit en cours. En effet, un petit patch pour la version Windows est passé presque inaperçu cette semaine alors que son effet est exceptionnel: il divise par 2 le temps de démarrage de Firefox.

Les 20 petites lignes de code de ce patch agissent sur le pré-chargement de la bibliothèque du langage interne (XUL) du navigateur. Jusqu’ici, ce chargement se faisait par bloc de 32ko (le buffer de lecture est très souvent de cette taille). En faisant passer cette taille à 2Mo, Taras Glek (le développeur à l’origine du patch) a améliorer le temps de chargement « à froid » d’au moins 40% en première intention.

static void preload(const char *dll) {
  HANDLE fd = CreateFileA(dll, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
  if (fd == INVALID_HANDLE_VALUE)
    return;

  char buf[64*1024];
  DWORD dwBytesRead;

  while(ReadFile(fd, buf, sizeof(buf), &dwBytesRead, NULL) && dwBytesRead == sizeof(buf));
  CloseHandle(fd);
}	

//Populate the windows page cache
static DWORD WINAPI preload_thread( LPVOID lpParam )
{
  preload("xul.dll");
  preload("mozjs.dll");
  return 0;
}

Il l’explique d’ailleurs sur le bugzilla de Mozilla.

Il affirme en outre que son patch est encore plus efficace sur des ordinateur dont le disque dur est lent. Les discussions montrent des résultats nuancés en fonction de la version de Windows. Visiblement il existe d’autres moyens d’améliorer ces chiffres.

Ce patch est prévu pour être intégré dans la prochaine beta ou la RC qui devrait sortir très prochainement. On attend avec impatience la fin du mois de février pour enfin installer la finale.

Je crois que Firefox n’est pas mort et a encore de beaux jours devant lui.