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 !
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 :
L'option "--brute" correpond à "--best --all-methods --all-filters --crp-ms=999999" ce qui permet d'avoir la meilleure compression possible.
Voila un exemple :
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
