[Delphi] Question neuneu : Taille importante des .sexe's?

Question neuneu : Taille importante des .sexe's? [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 20-05-2002 à 01:33:56    

Dites-moi, c'est normal que n'importe quel .exe comportant une GUI et compilé avec Delphi fasse plus de 500ko ou c'est moi qui n'ai rien compris ?  :??:

 

[jfdsdjhfuetppo]--Message édité par gilou le 21-05-2002 à 06:08:09--[/jfdsdjhfuetppo]


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 20-05-2002 à 01:33:56   

Reply

Marsh Posté le 20-05-2002 à 02:33:46    

C'est normal.
C'est parce que le exe n'utlise pas de DLL externe.
Un prog fait avec Visual C++ et les MFC par exemple est très gros s'il est compilé en "statique". Quand c'est un petit exe, dans la majorité des cas il a besoin des fichiers genre MFC42.DLL ou un truc du genre.
Tu peux faire des petits exe avec Delphi :
Project -> Options -> Packages -> Build with runtime packages
Mais tu auras besoin des DLL (BPL) tels que vcl6.bpl et autres.
Borland avait demandé à ce que ces fichiers soient inclus dans Windows, Microsoft a refusé :/
Par contre y a les DLL et Visual C++ et Visual Basic avec Windows :o

 

[jfdsdjhfuetppo]--Message édité par antp le 20-05-2002 à 02:34:03--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-05-2002 à 04:08:28    

ça aurait bien que ms est accepté d'intégré les fichiers de borland...


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 20-05-2002 à 06:33:02    

il est toujours possible de compresser ton EXE resultant: http://forum.hardware.fr/forum2.ph [...] h=&subcat=


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 20-05-2002 à 11:40:57    

Merci beaucoup pour vos réponses très complètes?  :)  
 
Donc si l'on veut une taille d'.exe moins importante il faut utiliser des dll's externes.
 
Quelqu'un sait quel est le pourcentage de postes qui ont déjà les plus classiques d'entre-elles installées ?
 
Y a-t'il un moyen de déterminer celles qui sont indispensables à l'exécution du programme ?
 
N'existe-t'il pas un programme ou un moyen de générer plus ou moins automatiquement des dll's "customisées" en fonction des besoins spécifiques d'un .exe ?
 
Voilà, j'espère que mes questions sont compréhensibles et ont un sens parce que je débute totalement avec Delphi et la programmation d'éxécutables en général?  ;)  
 
 
 
PS: Je viens d'essayer UPX et c'est pas mal du tout.  
 
Ca à déjà fait descendre la taille de l'exe à 200ko (au lieu de 510ko) ce qui est déjà fort appréciable.
 
Mais c'est une impression où ça s'exécute moins vite après compression ?  :heink:


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 20-05-2002 à 11:54:39    

J'ai toujours trouvé UPX extrèmement lent (pour démarrer le programme. Une fois qu'il est démarré il est décompressé en RAM donc là la vitesse est la même).
Par contre il y en a qui sont rapides, mais payants (je me souviens plus du mon :()
 
À priori seuls les PC qui ont Delphi installé ont les bpl de Delphi. Et encore, ils changent à chaque version. Par terrible donc :(
 
À ma connaissance on ne peut pas faireun dll/bpl avec juste ce dont le programme a besoin.
 
Pour trouver de quelles librairies un programme Delphi a besoin:
http://www.drbob42.first-web.net/required.zip

 

[jfdsdjhfuetppo]--Message édité par antp le 20-05-2002 à 11:55:11--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-05-2002 à 12:36:31    

antp a écrit a écrit :

J'ai toujours trouvé UPX extrèmement lent (pour démarrer le programme. Une fois qu'il est démarré il est décompressé en RAM donc là la vitesse est la même).
Par contre il y en a qui sont rapides, mais payants (je me souviens plus du mon :()
 
À priori seuls les PC qui ont Delphi installé ont les bpl de Delphi. Et encore, ils changent à chaque version. Par terrible donc :(
 
À ma connaissance on ne peut pas faireun dll/bpl avec juste ce dont le programme a besoin.
 
Pour trouver de quelles librairies un programme Delphi a besoin:
http://www.drbob42.first-web.net/required.zip  
 
 




 
ASPack ?
 
Sinon merci pour le lien, mais comment on se sert du résultat ?
 
Par exemple s'il me dit que mon programme requiert rt160.bpl et vc160.bpl, ça veut dire que je dois inclure quelles DLL's dans ma distribution ?

 

[jfdsdjhfuetppo]--Message édité par Freekill le 20-05-2002 à 12:36:57--[/jfdsdjhfuetppo]


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 20-05-2002 à 13:21:44    

Bhen que tu dois inclure ces deux bpl je suppose...
 
Oui c'était bien ASPack.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-05-2002 à 15:52:23    

Mmmh, à vue de nez un .exe compressé par AsPack s'ouvre +/- 3 fois plus rapidement que le même .exe traité par UPX réglé au maximum.
 
La taille est à peu près équivalente, mais AsPack est *beaucoup* plus rapide lors de la compression.
 
Toutefois, pour 35ko de plus on a une archive RAR avec l'exe original (et donc rapide à l'ouverture), et si l'on rajoute encore 30ko elle devient auto-extractible. (en zip ça fait un peu plus)
 
Je pense donc que cette solution est préférable?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 20-05-2002 à 16:18:36    

Reply

Marsh Posté le 20-05-2002 à 16:18:36   

Reply

Marsh Posté le 20-05-2002 à 16:52:03    

Si ce n'est que WinRAR (Comme ASPAck et contrairement a UPX) ne sont pas freeware)  :ange:


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 20-05-2002 à 17:49:22    

pour voir les désanvatages de la compression d'un exe va voir sur www.ngscan.com....
ce sujet a été traité à de nombreuse reprise....
 
un truc pour diminuer la taille d'un exe en delphi est au lieu d'inclure toutes les unités que tu as besoins, va seulement chercher le code que tu as besoins dans ces units et colle les dans ton programme...
c'est long mais ça permet de réduire de beaucoup...


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 20-05-2002 à 17:58:32    

Ce qui prend beaucoup c'est en général les composants visuels...  
Et puis seul le code réellement utilisé est inclus dans le .exe (quand on inclus une unit on a toutes ses déclarations mais pas tout son code)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2002 à 01:54:41    

antp a écrit a écrit :

Ce qui prend beaucoup c'est en général les composants visuels...  
Et puis seul le code réellement utilisé est inclus dans le .exe (quand on inclus une unit on a toutes ses déclarations mais pas tout son code)  




 
En effet, Delphi supprime tout ce qu'on utilise pas, y compris des fonctions/propriétés dans une classe, y a pas photo, tu perds ton temps en recopiant les fonctions que tu utilises.
 
Sinon os2, Borland a déjà essayé de faire intégrer ses librairies à Windows, mais Microsoft a gentillement refusé. Par contre, il y a des chances que sous Linux ca aille un peu mieux avec Kylix... Ils avaient posté un truc à ce propos d'ailleurs, on verra bien.


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 21-05-2002 à 02:00:32    

Avez vous deja ouvert avec un editeur de ressource un prog fait en Delphi ?
On trouve plein d'icones, curseurs inutilises ...
pire : on trouve du code source !
pas du code écris par le programmeur 'ouf!) mais le code des objects (composants de l'interface) ...
Si quelqu'un pouvais m'expliquer pourquoi !
 
Aspack n'est pas freeware ? Sur le miens, il y a écrit "Aspack Win32 exe dll compressor - Freeware for non commercial use"
Moi aussi je le trouve nickel !
 

Citation :

Quelqu'un sait quel est le pourcentage de postes qui ont déjà les plus classiques d'entre-elles installées ?


Distribue ton programme tel quel et compte le nombre de râleurs ...
 

Citation :

Y a-t'il un moyen de déterminer celles qui sont indispensables à l'exécution du programme ?


L'apercu rapide de Windows te liste les dll utilisées.
 

Citation :

Par contre y a les DLL et Visual C++ et Visual Basic avec Windows


Pour VB je sais pas (en plus il se traine plein d'ActiveX), mais pour VC++ c'est sûr que c'est fournit avec Windows depuis au moins 98.
Alors je me demandais : si c'est aussi fournit depuis 95 ce qui doit être le cas vu que des programmes windows tels que Pain utilise ces dll est on obligé de distribuer ces dll / compiler en static ?
N'est on pas assuré que la dll msvcrt ou mfc42 est installée sur 100% des postes ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-05-2002 à 02:27:21    

Citation :


Avez vous deja ouvert avec un editeur de ressource un prog fait en Delphi ?
On trouve plein d'icones, curseurs inutilises ...
pire : on trouve du code source !
pas du code écris par le programmeur 'ouf!) mais le code des objects (composants de l'interface) ...
Si quelqu'un pouvais m'expliquer pourquoi !


Non, ce n'est pas du code, c'est ton fichier de ressources de ton form. Quand tu lances ton application, chaque composant TForm va streamer dans les ressources son form (non, pas question de générer le code pour créer les objets lors de la compilation, ca voudrait dire qu'il faudrait un traducteur ressource->code pascal).  
 
Depuis Delphi1 tu sais récupérer les forms des programmes delphi/builder, c'est pas vraiment un grand secret, tu as même un RexExplorer fournit en démo par borland qui le fait très bien.
 
Pour les 4-5 icones et curseurs inutiles, c'est pas ca qui va faire gagner 100k  :sarcastic:  
 

Citation :


Aspack n'est pas freeware ? Sur le miens, il y a écrit "Aspack Win32 exe dll compressor - Freeware for non commercial use"
Moi aussi je le trouve nickel !


C'est que tu n'as pas lu les débats et les articles... En tant qu'utilisateur, je préfère perdre 1mb sur mon disque dur et économiser 500k de ram que le contraire! Un exécutable compressé empêche windows de gérer éfficacement la mémoire de ton process vu que tu loads un truc de 10-15k qui décompresse tout ton exe en mémoire, cappice? (Sinon va lire les articles cités plus haut et oublie cette idée à la con :p)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 21-05-2002 à 02:47:37    

zion a écrit a écrit :

 
Non, ce n'est pas du code, c'est ton fichier de ressources de ton form. Quand tu lances ton application, chaque composant TForm va streamer dans les ressources son form (non, pas question de générer le code pour créer les objets lors de la compilation, ca voudrait dire qu'il faudrait un traducteur ressource->code pascal).  
 
Depuis Delphi1 tu sais récupérer les forms des programmes delphi/builder, c'est pas vraiment un grand secret, tu as même un RexExplorer fournit en démo par borland qui le fait très bien.
 
Pour les 4-5 icones et curseurs inutiles, c'est pas ca qui va faire gagner 100k  :sarcastic:  
 




 
Wai, Dede fait ça très bien par exemple.
 
Tu peux même enregistrer ton dump sous forme de fichiers Borland (drp, dfm, etc), mais toutes les parties "intéressantes" resteront en ASM?  :D


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 21-05-2002 à 03:50:43    

Freekill a écrit a écrit :

 
 
Wai, Dede fait ça très bien par exemple.
 
Tu peux même enregistrer ton dump sous forme de fichiers Borland (drp, dfm, etc), mais toutes les parties "intéressantes" resteront en ASM?  :D  




 
 
Ouai mais non, on parle de form, pas du code source... Si on va jusqu'à la décompilation, on sait décompiler les exes générés par tous les langages hein  :kaola:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 21-05-2002 à 06:10:33    

Citation :

Non, ce n'est pas du code, c'est ton fichier de ressources de ton form. Quand tu lances ton application, chaque composant TForm va streamer dans les ressources son form (non, pas question de générer le code pour créer les objets lors de la compilation, ca voudrait dire qu'il faudrait un traducteur ressource->code pascal).


 
Je sais bien wue c'est pas du code au sens code source exécutable. Je savais pas comment l'appeler. ;)
Je trouve juste ce procédé assez bizarre ...
Quel est l'avantage par rapport a un traducteur ressource->code pascal (qui existe vu qu'il y a bien quelque part un code qui interprete ca). Et aussi en quoi c'est mieux que d'utiliser les ressources "habituelles" de Windows.
 

Citation :

Pour les 4-5 icones et curseurs inutiles, c'est pas ca qui va faire gagner 100k  :sarcastic:


Oui biensûr, mais c'est le principe : pourquoi mettre des trucs qui ne servent pas ?
 
 

Citation :

C'est que tu n'as pas lu les débats et les articles... En tant qu'utilisateur, je préfère perdre 1mb sur mon disque dur et économiser 500k de ram que le contraire! Un exécutable compressé empêche windows de gérer éfficacement la mémoire de ton process vu que tu loads un truc de 10-15k qui décompresse tout ton exe en mémoire, cappice? (Sinon va lire les articles cités plus haut et oublie cette idée à la con :p)

 
 
Non je n'ai pas lu, j'étais pressé et le lien était fouarreux ... quel gland j'ai pas vu les 3 petits points derrière ...
Je vais aller lire cà ...
Bon je suis incapable de trouver quoique ce soit. IE me dit tout le temps "Impossible de trouver la page"
A defaut j'ai lu ceci :
http://tothpaul.free.fr/pv_exe.php3
 
Mouai ... je suis pas hyper convaincu que c'est une idée "à la con"
Si j'ai bien compris, l'inconvénient est que tout l'exe + 10-15k sont constament an mémoire, au lieu d'avoir une partie de l'exe qui est swappée ... Sur un petit projet (pas trop de ressources), je pense que c'est acceptable. Mais c'est vrai que d'avoir constamment en mémoire une image de 100Ko qui n'a servi que 5 secondes au depart comme splash screen ...
Ceci rapporté à plusieurs programmes qui tournent en même temps ... on doit avoir presque autant de mémoire perdue qu'avec la compilation en statique ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-05-2002 à 09:51:17    

HelloWorld a écrit a écrit :

Et aussi en quoi c'est mieux que d'utiliser les ressources "habituelles" de Windows.




 
Avec les ressources habituelles tu ne peux mettre que les composants habituels :D
Et vu le paquet de trucs spéciaux de Delphi, autant directement stocker les ressources autrement


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2002 à 09:52:10    

HelloWorld a écrit a écrit :

 
Aspack n'est pas freeware ? Sur le miens, il y a écrit "Aspack Win32 exe dll compressor - Freeware for non commercial use"
Moi aussi je le trouve nickel !




 
Bon à savoir.
La dernière fois que je l'avais utilisé ce n'était pas le cas.
Je vais le re-downloader alors (pour certains cas ça peut-être utile)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2002 à 09:52:56    

Et bravo à Gilou pour avoir sournoisement modifié le titre de ce topic :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2002 à 10:12:47    

:D


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 10:44:16    

Citation :

Avec les ressources habituelles tu ne peux mettre que les composants habituels :D  
Et vu le paquet de trucs spéciaux de Delphi, autant directement stocker les ressources autrement


 
Et non ...
Tu peux utiliser des composants non "habituels".
Un exemple : tu peux directement inclure un ActiveX dans une ressource ...
Mais bon, Borland a préféré faire son truc à lui au lieu des ActiveX ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-05-2002 à 10:47:10    

Je voulais dire qu'il y a tellement de composants non standard ou un peu modifiés que c'était nettement plus simple de refaire un truc à eux.
Si ils avaient tout foutu en activex ç'aurait été plus lourd, non ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2002 à 10:57:26    

désolé de mettre mon grain de sable ds cette histoire
mais 400K c vraiment pas la mort
qd je vois que pour un programme java il faut le jre qui fait 30Mo a lui tt seul decompressé
la tu peux galéré pour distribuer ton prog lorsque t as à faire a des newbies

Reply

Marsh Posté le 21-05-2002 à 11:12:16    

zion a écrit a écrit :

 
 
 
Ouai mais non, on parle de form, pas du code source... Si on va jusqu'à la décompilation, on sait décompiler les exes générés par tous les langages hein  :kaola:  




 
Ben ouais, on est d'accord?
 
Alors pas de  :kaola:, hein ? :fou:


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 21-05-2002 à 11:14:06    

Citation :

Je voulais dire qu'il y a tellement de composants non standard ou un peu modifiés que c'était nettement plus simple de refaire un truc à eux.  
Si ils avaient tout foutu en activex ç'aurait été plus lourd, non ?


 
Plus lourd ... Je vois pas trop à quoi tu fais allusion.
VB procède ainsi et ca marche plutôt bien. On rajoute les composants dont on a besoin a la palette. On peut aussi faire pareil avec Delphi, mais ce sont les packages qui sont utilisés ...
Je ne me souviens plus quel est l'intérrêt de ceci par rapport à l'ActiveX ... mise à part livrer le source ... et empêcher les autres IDE de profiter des composants !
 
http://merlin.developpez.com/packages/LesPackages.htm
 
ne m'a pas plus éclairé ...
Un spécialiste peut il me dire l'avantage par rapport aux ActiveX ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-05-2002 à 11:15:41    

veryfree a écrit a écrit :

désolé de mettre mon grain de sable ds cette histoire
mais 400K c vraiment pas la mort
qd je vois que pour un programme java il faut le jre qui fait 30Mo a lui tt seul decompressé
la tu peux galéré pour distribuer ton prog lorsque t as à faire a des newbies  




 
Hé, j'apprends pardi, alors autant faire ça bien non ?  :p


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 21-05-2002 à 11:15:45    

HelloWorld >> Ça permet d'intégrer les composants dans le exe, activex ce sont des ocx à part, non ?
 
Et si les autres IDE veulent profiter des compos, tu convertis les compos en ActiveX en quelques clics dans Delphi :p

 

[jfdsdjhfuetppo]--Message édité par antp le 21-05-2002 à 11:16:40--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2002 à 11:17:17    

antp a écrit a écrit :

Et bravo à Gilou pour avoir sournoisement modifié le titre de ce topic :D  




 
 :heink: ?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 21-05-2002 à 11:17:56    

Freekill a écrit a écrit :

 
 
Hé, j'apprends pardi, alors autant faire ça bien non ?  :p  




 
oui  ;)

Reply

Marsh Posté le 21-05-2002 à 11:18:24    

Freekill a écrit a écrit :

 
 
 :heink: ?  




 
 
reveille toi lol

Reply

Marsh Posté le 21-05-2002 à 11:19:11    

zion a écrit a écrit :

 
C'est que tu n'as pas lu les débats et les articles... En tant qu'utilisateur, je préfère perdre 1mb sur mon disque dur et économiser 500k de ram que le contraire! Un exécutable compressé empêche windows de gérer éfficacement la mémoire de ton process vu que tu loads un truc de 10-15k qui décompresse tout ton exe en mémoire, cappice? (Sinon va lire les articles cités plus haut et oublie cette idée à la con :p)  




 
Parfaitement !!!
40Go = 80000 fichier .exe de 500ko !!!


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 21-05-2002 à 11:29:30    

veryfree a écrit a écrit :

 
 
 
reveille toi lol  




 
Ben ouais mais qu'est-ce qu'il lui a pris ?  :heink:


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 21-05-2002 à 11:30:06    

Freekill a écrit a écrit :

 
 
Ben ouais mais qu'est-ce qu'il lui a pris ?  :heink:  




 
demande lui  :D

 

[jfdsdjhfuetppo]--Message édité par veryfree le 21-05-2002 à 11:30:25--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 21-05-2002 à 11:33:07    

veryfree a écrit a écrit :

 
demande lui  :D  




 
On fout des rêgles sur Bla-Bla et pis on vient foutre la merde dans les autres sections?  :sarcastic:  
 
 :D


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 21-05-2002 à 11:33:26    

Citation :

HelloWorld >> Ça permet d'intégrer les composants dans le exe, activex ce sont des ocx à part, non ?


 
D'apres ce que j'ai lu (=> lien precedent), un composant peut etre linké en run time. Ca revient donc au meme probleme des dll ... si ce n'est qu'avec Delphi on a le choix entre static-dynamic. D'apres ce que j'ai lu ca passe meme par des dll.
 

Citation :

Et si les autres IDE veulent profiter des compos, tu convertis les compos en ActiveX en quelques clics dans Delphi :p


 
Et si je fais ca c'est que j'ai pas Delphi ... comment je fait alors ? :p
 

Citation :

Parfaitement !!!  
40Go = 80000 fichier .exe de 500ko !!!


 
Et en mémoire je perd 15 Ko ...
128 Mo = 8533 * 15 Ko !!!
Moi qui en ai le double, je ne vais pas m'affoler ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed