Go Go GOPreload
(crédit photo : Toei Animation)
GOPreload (à ne pas confondre avec Preload) est un programme que j'ai découvert sur le toujours excellent wiki de Archlinux, dont le code est hebergé sur GitHub.
Il a pour objet d'accélérer le lancement d'un logiciel donné (spécialement son lancement à froid, c'est-à-dire le premier lancement du logiciel après le démarrage du système). Pour arriver à ce résultat, il va analyser le processus de chargement du logiciel puis programmer à chaque démarrage du système le préchargement de ses différents composants. Ainsi, au lancement de l'application par l'utilisateur, celle-ci sera en fait déjà en grande partie chargée.
Il est développé sous GNU GPL v2 par Antonio Orefice, alias kokoko3k.
Avant d'aller plus loin, sachez que j'ai commencé à préparer ce billet il y a presqu'un an, le 16 novembre 2015. Je cherchais alors à accélérer le lancement de Firefox sur le système de mon père (une Debian stable) puisque la navigation web est, de loin, son principal usage au démarrage du PC. Depuis, j'ai régulièrement tenté de faire fonctionner GOPreload sur son PC mais je n'ai jamais réussi à obtenir une accélération du démarrage de Firefox, malgré la disponibilité de l'auteur (qui hélàs, n'utilise, pas Debian). Aujourd'hui je suis dans un cul-de-sac, mais je présente quand même ici le logiciel et son mode de fonctionnement puisque celui-ci semble marcher pour d'autres utilisateurs.
Je donne ici l'exemple d'installation et d'utilisation de GOPreload pour accélérer Firefox : libre à vous d'adapter le tutoriel pour d'autres applications. Tout se passe en ligne de commande.
Première étape : installer GOPreload et le configurer pour Firefox
Vérifiez d'abord que les logiciels strace et coreutils sont bien installés sur votre système.
Téléchargez le code source de GOPreload :$ cd /tmp && git clone https://github.com/kokoko3k/gopreload.git
Compilez fmlock (inclus) et installez GOPreload :$ cd gopreload/usr/share/gopreload/fmlock.source/ && ./compile.sh
# mkdir -p /usr/share/gopreload/bin/
# cp /tmp/gopreload/usr/share/gopreload/fmlock.source/fmlock.gopreload /usr/share/gopreload/bin/
# cp /tmp/gopreload/* / -av
# rm -R /usr/share/gopreload/fmlock.source/
Autorisez un non-administrateur du système à exécuter le démon GOPreload (remplacez ci-après « my_username » par votre nom d'utilisateur sur le système) :# chown my_username /usr/share/gopreload/enabled /usr/share/gopreload/disabled
Demandez à GOPreload de préparer le préchargement de Firefox :
Redémarrer le système, puis entrez la commande suivante :$ /usr/share/gopreload/bin/Prepare.sh firefox
Pressez la touche « Entrée » une fois que Firefox est pleinement chargé (vérifiez le témoin d'activité du disque dur) : vous obtenez un message du type : result on Firefox 46.0.1 : "1264 on 1264 done, will use 135MB to preload them".
Activez GOPreload :# systemctl enable gopreload
Deuxième étape : vérifiez que GOPreload est bien actif
Quelques commandes devraient vous le confirmer :$ systemctl status gopreload
ou encore :$ ps -ef|grep preload
Troisième étape : comparez les temps de démarrage de Firefox avec et sans GOPreload
Entrez la commande $ time firefox
puis fermez Firefox une fois qu'il semble complètement chargé. Comparez les résultats avec et sans le démon GOPreload actif.
Voilà, n'hésitez pas à me faire savoir si cela marche pour vous !