Diminuer la taille de l'executable

kaputzan Messages postés 11 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 9 avril 2006 - 14 juil. 2004 à 19:32
assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011 - 16 oct. 2005 à 16:43
Bonjour,
Je viens de faire un petit programme. Relativement simple à mon gout. 441 lignes, le .pas fait 16 ko et aucun composant complexe.
Et l'executable fait 449 Ko ...
Y-a-t-il un moyen de diminuer un peu la taille de l'exécutable ?

Quelles sont les pistes à suivre?
merci

11 réponses

slachz Messages postés 109 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 1 janvier 2006
14 juil. 2004 à 20:58
euh, en utilisant des types plus appropries, en allegeant la source (avec des with..do ou case..of) par exemple mais bon 449 Ko ça va nan ? (je connais pas ton programme m'enfin).
0
Encore1ben Messages postés 68 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 22 février 2008
15 juil. 2004 à 12:43
A l'heure du Haut débit, 449 Ko me paraît totalement raisonnable. Mais pour répondre à ta question, désolé, je ne vois pas comment, si ce n'est de suivre les conseils de slachz...

Bonne journée,
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
15 juil. 2004 à 13:17
Salut,

Effectivement ton exe n'est pas tres gros. Car si tu crée un nouvel exe par défaut dans delphi sans rien modifié dedans il fait deja 353Ko. Moi ce que je fais pour reduire la taille de mes exe est de les compresser avec upx. Il te divise la taille de ton exe par 2 voir 4 selon la taille de depart.

A+,
JMP.
0
kaputzan Messages postés 11 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 9 avril 2006
17 juil. 2004 à 09:34
Merci pour toutes ces réponses
Vous avez raison, je vais être plus optimiste . . . après tout, à l'heure de l'ADSL à 5M et des machines surpuissances à 400 euros . . . 449Ko devient raisonnable !
Effectivement, je compresse aussi l'exe ... je vais m'en contenter
Encore merci pour vos points de vue sur le sujet
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaputzan Messages postés 11 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 9 avril 2006
17 juil. 2004 à 09:55
Merci à tous pour ces réponses,
Je crois que vous avez raison ... à l'heure de l'ADSL à 5M et des machines surpuissantes à 400 euros ... 449 Ko devient tout à fait raisonnable.
Je vais me rendre à l'évidence et continuer à compresser mes exe
Merci pour vos points de vue
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
1 août 2004 à 17:46
salut,

voici un mot sur les compresseurs d'executables (UPX ici).
(source : Delphi 7 Studio)
"
Puisque nous parlons de réduction de taille de code, il semble à propos de glisser un mot sur ces logiciels qui se proposent de compresser les exécutables, voire les DLL, pour gagner de la place. Ne succombez pas à l'appel de ces sirènes et de leur chant trompeur : si ces programmes vous donneront l'impression que l'exécutable est effectivement plus petit sur le disque, a contrario il prendra énormément plus de place en mémoire une fois chargé ! A cela une bonne raison : Windows sais gérer les différents blocs d'un exécutable et ne charge en mémoire que ce qui est utile. Par exemple, une application contenant 200 fiches et qui prendrait 15 mo sur le disque et dont seulement 1 ou 2 fiches sont crééés à la fois ne prendra que très peu de place en mémoire... En compressant l'exécutable, les logiciels évoqués (UPX) ici transforment la quasi-totalité du fichier EXE en un seul bloc de données précédé d'un chargeur (la partie qui décompresse et passe le contrôle au code décompressé en mémoire). De fait, Windows ne voit qu'un seule bloc logique et charge tout en mémoire. Une application sera donc chargée en totalité en mémoire, ralentira Windows, forcera le swapping et autres nuisances du même genre. La technique de compression d'exécutable ne peut, à la rigueur, être exploitée que sur des applications très petites (1 ou 2 fiches), de type utilitaire par exemple. Mais dans ce cas le gain de place en Mo est négligeable. Au final, rien ne justifie donc d'utiliser de trels programmes de compression ...
"

et moi je dit : idem :)

bon codage (et vidage de corbeille apres y avoir jeté UPX)
0
kaputzan Messages postés 11 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 9 avril 2006
8 août 2004 à 11:50
Je viens de trouver cela sur le site www.phidels.com . Je pense que ça peut éclairer un peu la question.
-------------------------------------------------------------------------------
Commencez un nouveau projet. Compilez le. Il a une taille de l'ordre de 388 Ko (D5)
Allez dans projet, option, paquets (attention, le programme ne doit pas être en train de tourner). Cliquez sur "construire avec les paquets d'exécution".
Compilez, l'exe a pris une sacré cure d'amaigrissement (14 ko en D5). Bon ok mais si on met cet exe sur un poste qui n'a pas delphi, il affiche un message d'erreur disant qu'il ne trouve pas un certain fichier dll. Notez son nom (par exemple VCL50.BPL pour un delphi 5). Recherchez ce fichier sur un disque où Delphi est installé (normalement, il est dans le répertoire système) et placez le dans le répertoire où se trouve votre exe ou dans le dossier système du poste client. Là, plus d'erreur votre exe fonctionne.
Selon les composants utilisés, il faudra livrer d'autres fichiers .BPL
Pour voir lesquelles livrer : Lancez votre programme (F9) et aller dans Projet / Information pour "nom de ton projet". La liste des paquets utilisés correspond aux .BPL à livrer.
--------------------------------------------------------------------------------
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
8 août 2004 à 11:52
et la liste des BLP depasse t'elle les 374k suplémentaires ?
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
21 mai 2005 à 10:33
La méthode de compression n'est pas exactement réversible (c'est comme la congélation... ça ne va que dans un sens). Dependency Walker l'a supposé et WinDiff a dramatiquement confirmé la chose. En plus, UPX tue les tables d'exportation.

Alors, ne l'utilisons pas...

===========
0
kaputzan Messages postés 11 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 9 avril 2006
21 mai 2005 à 10:55
Merci pour ce tuyau . . . je le note dans mes tablettes
0
assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011
16 oct. 2005 à 16:43
J'ai une solution toute opposée à celles proposées.
Elle consiste à utiliser un Bibliothèque allégées.
J'était tombé dessus y a quelques années. Elle permettait d'économiser de 100 à 300 ko, je m'en ouviens plus exactement...
A la conception, c'est la VCL Borland qui est utilisée, avec son interface avec Delphi.
Tandis qu'à la compilation, je ne sais plus par quelle manip, c'est la VCL allégée qui est linkée à l'EXE. Slim Soft !!!

C'est vieux, donc c'est vague, mais l'économie en ko était stupéfiante.
Je n'avais pas retenu cette solution, car les inconvénients (y en avaient) demeurait quelque soit la taille de l'appli, tandis que les avantages était limité à ces quelques ko d'économisé. Avec l'inflation de puissance qui caractérise l'informatique, ces 100, 200, 300 ko d'économie étaient destinés à être de moins en moins importants.

Je conserve néanmoins à l'esprit que toutes les bibliothèques sont surchargée et que de temps en temps ou un jour, il faudra faire un peu de ménage.

Ca me fait penser à XFree86, dont peux savent que c'est un boulet pour linux, et qui mériterait d'être remplacé ou réécrit.


Diégo Delpy
0
Rejoignez-nous