Aide - Recherche - Membres - Calendrier
Version complète : Compresser Vos .exe
PPCCool > Tutoriaux, Tests & Bricolages > Tutoriaux
TOD
UPX (the Ultimate Packer for eXecutables) est un freeware qui permet de compresser un exécutable pour Windows Mobile tout en le laissant exécutable sur le PPC : le fichier reste exécutable après compression et n'a pas besoin d'une decompression manuelle avant de pouvoir être lancé.

En fait, le code de décompression est ajouté au fichier compressé. Lorsqu'il est lancé, le fichier se décompresse en mémoire et s'exécute. La ratio de compression est excellent et la décompression est très rapide. En plus des .exe, on peut aussi compresser des DLL, comme celle des plugin Today ! cool.gif

Les .exe des applications .net ne sont pas compressibles.

Il n'y a pas de consommation de mémoire d'exécution supplémentaire car la décompression se fait "in-place". Le but de UPX est donc de réduire l'espace de stockage utilisé par les programmes.

De plus, comme la taille du fichier est réduite, on peut gagner en temps de lancement des applications. En effet, le fichier étant plus petit, le temps nécessaire à sa lecture est plus court. Si le temps de décompression est inférieur au temps de lecture gagné, alors le lancement de l'application est accéléré.

C'est le cas avec Tomtom 5.21 : l'exe fait 1,7 Mo et une fois compressé il ne fait plus que 700 Ko. On gagne donc 1 Mo de stockage et un chargement accéléré (1 seconde dans mon cas).

Avant toute manipulation, je vous conseille de faire une sauvegarde complète de votre machine.

La compression se fait sur un PC. L'idéal est de compresser un fichier à la fois afin de tester le bon fonctionnement de l'application une fois compressée.

On doit copier le fichier du PPC sur le PC. On sauvegarde le fichier sur le PC en créant une copie de secour (en plus de la sauvegarde de la machine). En effet, après la compression, le fichier original est remplacé par celui compressé. En cas de probleme avec l'application compressé, on remet la copie de secour sur le PPC. Si le PPC est planté (ca c'est produit chez moi avec certaines DLL et les applications de Resco), on restaure la sauvegarde complète.

Noter qu'à chaque mise a jour de l'application, il faudra refaire ces étapes car l'ancien exe compressé sera remplacé par la nouvelle version non compressé.

Voila donc la procédure à suivre après avoir fait une sauvegarde complète et une copie du fichier exe non compressé dans un répertoire :

Image IPB On transfert le fichier a compresser sur le PC dans le répertoire de UPX. On peut le télécharger ici. La version actuelle est la 2.01 wink.gif

Image IPB La compression se fait en ligne de commande. On ouvre donc une console et on se place dans le répertoire de UPX.

Image IPB La commande est : upx --brute myfile.exe (ou myfile.exe est le fichier provenant du PPC).

L'option "--brute" correpond à "--best --all-methods --all-filters --crp-ms=999999" ce qui permet d'avoir la meilleure compression possible.

Image IPB Si le nom de l'exe comporte des espaces, il faut le mettre entre ""

Voila un exemple :

Image IPB

Image IPB Au cas ou vous voulez décompresser un exe, il suffit de lancer la commande : upx -d myfile.exe

Image IPB Une fois compressé, on place l'exe compressé sur le PPC en écrasant l'ancien. Pour les plugin Today, il faut les désactiver avant de remplacer la DLL, puis les réactiver pour les relancer.

Image IPB Après avoir compressé un fichier (exe ou dll), je vous conseille de tester l'application. Apres avoir fait les tests, faite un soft reset et retester.

Image IPB Attention pour ceux sous WM5, la signature du fichier aura changé. Il faudra donc approuver le lancement si vous n'avez pas désactivé la sécurité.

Voila quelques résultats que j'ai obtenu :

1) Tomtom Navigator 5.21 :
TomTom Navigator.exe : 1,7 Mo --> 713 Ko (gain de 1 seconde au lancement : 20 au lieu de 21)

2) PocketBreeze 5.1.01 :
PocketBreeze.dll : 350 Ko --> 125 Ko
PBSettings.exe : 551 Ko --> 236 Ko

3) ContactBreeze 1.2.01 :
ContactBreeze.dll : 226 Ko --> 78 Ko

4) PocketWeather 1.3.4 :
pocketweather.dll : 210 Ko --> 77 Ko
weatherconsole.exe : 273 Ko --> 98 Ko
weathersetup.exe : 483 Ko --> 174 Ko
about.exe : 60 Ko --> 25 Ko

5) MemMaid 1.61 :
MemMaid.exe : 330 Ko --> 114 Ko

6) Pocket Informant Pro 2005 Release 5 :
PocketInformant.exe : 541 Ko --> 209 Ko

7) SPB Backup 1.1.2 :
SpbBackup.exe : 470 Ko --> 217 Ko
bebaer
C'est hyper intéressant et si on fait le total des gains, c'est impressionnant.
Merci pour ce tuto et cela semble facile à faire...Mais il vaut mieux effectivement prendre toutes les précautions.
TOD
Oui va comprendre : les plugin today que je possède ne posent pas de souci alors que Resco Picture Viewer gèle ma machine au démarrage (et je ne l'ai pas mis en démarrage automatique...) Va comprendre....

Donc il faut le faire fichier par fichier et bien testé.

Ceux qui ont compressé d'autre programme peuvent compléter la liste que j'ai commencé cool.gif
wintosh
icon_salut.gif Salut

Super, je vais tout compresser comme César. laugh.gif laugh.gif

Non sérieux je vais tester l'effet kompressor dès demain sur tomtom.

Dankeshoeun herr Tod.
Nemo
Salut !

Très intéressant cet article.
Economiser de la mémoire vive est très utile.
Je connais UPX depuis pas mal de temps sur PC mais je ne savais pas que cela fonctionnait sur PPC.
Est-ce le même ?
Puisqu'il y a du code c'est forcément une version spécifique PPC, non ?

Autre chose: La compression des DLL est vraiment faisable ?

Tod : Tu n'aurais pas un lien de téléchargement par hasard ?

Merci d'avance.
Nemo
J'ai trouvé, c'est là: http://upx.sourceforge.net/
Et c'est le même exe qui fait tout.
TOD
Tout était dans le tuto : le lien et les explications.

Pour les dll ca marche si ce n'est pas des dll de ressource. J'ai eu pas mal deprobleme avec les dll de ressource par contre ca marche tres bien avec les dll des plugin today... wink.gif

L'déal est de tester une par une cool.gif
Nemo
Effectivement, comme j'ai les bras qui s'allongent je n'avais pas vu le ici dans le texte.
Je vais faire quelques manips.
TOD
C'est un peu plus visible maintenant tongue.gif
TOD
Je viens de tester avec iGo 2006 et ca ne passe pas. Dommage (800 Ko au lieu de 2 Mo) dry.gif
shat
Hello everybody

Pour ceux que ça intéresse :upx4ppc
TOD
UPX est passé en version 2.03 w00t.gif
DuD
CITATION(shat @ 10-11-2006, 14:42 ) *
Hello everybody

Pour ceux que ça intéresse :upx4ppc



oui vraiment très facile avec la version pocket,et surtout quelle place gagnée dance1.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.