Bonjour journal...
Aujourd'hui, je présente à tout le monde mon petit script écrit à la va-vite ce matin sur du papier brouillon : il me permet de faire passer une installation de firefox 0.9Rc1 (mais ça marche aussi avec les nightly) de 19,1Mo à 10,2Mo en 1 minute 9 secondes sur mon athlon 2000+
Comme ça, je suis moins jaloux du travail fait sur la version win dont l'installeur ne pèse que 4,6Mo ;)
J'espère que vous trouverez des améliorations à y apporter !
Notamment, comment faire pour vérifier la présence d'un fichier ? Et quels autres fichiers puis-je compresser ?
Voici le script :
#!/bin/sh
export ff_dir="firefox-test"
cd $ff_dir
echo "UPX..."
upx --best firefox-bin
upx --best mozilla-xremote-client
upx --best xpicleanup
upx --best components/talkback/talkback
echo "JAR..."
cd chrome
for i in *.jar;
do
mkdir temp;
mv $i temp/$i;
cd temp;
unzip $i;
rm -f $i;
zip -r -9 $i *;
cp $i ../;
cd ..;
rm -fr temp;
done;
Il faut indiquer au début du script l'emplacement de firefox.
Je prépare la même chose pour l'installeur...
En espérant que ce script vous sera utile...
# Premier changement
Posté par Pinaraf . Évalué à 1.
remplacer la ligne upx --best components/talkback/talkback par
if [ -a "components/talkback/talkback" ] ; then
upx --best components/talkback/talkback;
fi
Comme ça ceux qui ont pas installé ce composant n'auront pas de problèmes...
[^] # Re: Premier changement
Posté par Jazz . Évalué à 1.
Je pense que c'est plutôt ceci que tu veux:
if [ -f "components/talkback/talkback" ] ; then
-a, c'est le ET logique.
[^] # Re: Premier changement
Posté par Pinaraf . Évalué à 1.
[^] # Re: Premier changement
Posté par Jazz . Évalué à 3.
Celà dit, bizarre que -f ne fontionne pas pour toi...
[^] # Re: Premier changement
Posté par Pinaraf . Évalué à 1.
Les scripts corrigés sont sur mon site...
# Un peu HS, désolé....
Posté par shinobufan (site web personnel) . Évalué à 6.
En plus sur les machines récentes le temps de chargement supplémentaire du à upx est à priori négligeable... Cela dit, vous me direz qu'avec l'internet rapide et les gros disques actuels on se moque de la taille des binaires...
Enfin voila, c'était ma question existentielle du jour (suis pas très inspiré en ce moment ^^)
[^] # Re: Un peu HS, désolé....
Posté par Pinaraf . Évalué à 2.
Mais bon, upx (avec l'option --best) reste lent à compacter donc ça enlève l'envie de compresser 1Go de programmes... Voici les résultats sur l'exécutable de firefox (sur mon Athlon XP2000+ toujours...)
[pierre@localhost firefox-base]$ time upx --best firefox-bin
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
UPX 1.24 Markus F.X.J. Oberhumer & Laszlo Molnar Nov 7th 2002
File size Ratio Format Name
-------------------- ------ ----------- -----------
9749588 -> 4055109 41.59% linux/386 firefox-bin
Packed 1 file.
41.23user 0.48system 0:48.83elapsed 85%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+25735minor)pagefaults 0swaps
48 secondes pour compresser 9,8Mo c'est plutôt chiant si le nombre de paquets est trop élevé...
[^] # Re: Un peu HS, désolé....
Posté par shinobufan (site web personnel) . Évalué à 2.
Mais si ce n'est pas fait, c'est qu'il soit y avoir une raison. Je ne sais pas laquelle par contre !?
[^] # Re: Un peu HS, désolé....
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
[^] # Re: Un peu HS, désolé....
Posté par shinobufan (site web personnel) . Évalué à 2.
[^] # Re: Un peu HS, désolé....
Posté par djapat . Évalué à 2.
L'avantage premier est le gain en espace dique et il se peut que le temps de le temps de chargement + le temps de décompréssion soit bénéfique ou pénalisant: tout dépend du cpu (486 33Mhz ou p4 3000Mhz), du disque (vieux ide ou scsi) et du taux de compression du programme...
[^] # Re: Un peu HS, désolé....
Posté par mickabouille . Évalué à 2.
> beaucoup plus les binaires que tar.gz & co.
Ça change la taille une fois sur ton ordinateur, pas la taille du fuchier que tu télécharges avant de l'installer. Si celui qui fait le paquet fournit un /usr/bin/firefox compressé comme ça dans son .tgz (ou .deb, .rpm), la taille du paquet sera en gros la même que s'il ne le compresse pas (parce que faut pas rêver, un algo de compression marche toujours moins bien sur des données compressées).
[^] # Re: Un peu HS, désolé....
Posté par Pinaraf . Évalué à 0.
Démonstration avec firefox : je compresse tout avec upx, je recompresse en tar.gz. Résultat : gain de 200Ko sur la version compressée contre 9Mo sur la version non compressée...
# Compression de l'installeur
Posté par Pinaraf . Évalué à 1.
(perfs sur l'installeur : la dernière nightly passe de 8,1 à 7,9 Mo : ridicule quoi...)
Le script pour l'installeur est dispo sur :
http://www.pinaraf.xalp.org/compact_installer.sh(...)
Le script pour un dossier installé de firefox sur :
http://www.pinaraf.xalp.org/compact_firefox.sh(...)
Toute remarque est la bienvenue
[^] # Re: Compression de l'installeur
Posté par Pinaraf . Évalué à 0.
(je pense que c'était pas assez clair)
# Résultats sur firefox 0.8 fr
Posté par Pinaraf . Évalué à 1.
Où puis-je proposer mes scripts sur mozilla.org ?
# upx --compress-icons=0 *.dll
Posté par zebul666 . Évalué à 1.
Je l'utilisais pour mozilla <1.2 et qui mettait des plombes sans compression à charger surtout sur mon pauvre celeron de l'époque et de mon pauvre dd.
avec upx , tu peux compresser les dll sous "fenetre" et ca mettait 5 fois moins de temps a charger surtout que mon dd avait beaucoup de ko à lire ...
c'est utiliser par exemple par mame je crois.
Je trouvais par contre beaucoup moins efficasse le même traitement pour la version linux
Je suppose que maintenat ce qu'il faut utiliser c'est le prelink. Non ?
Ca doit donner des resultats aussi interessant en terme de temps de chargement ?
[^] # Re: upx --compress-icons=0 *.dll
Posté par Pinaraf . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.