Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > C++Builder
C++Builder Environnement de développement RAD C++Builder. Avant de poster -> F.A.Q C++Builder, Sources C++Builder
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/07/2004, 18h12   #1
DjmSoftware
Rédacteur/Modérateur
 
Avatar de DjmSoftware
 
Homme
Responsable de projet fonctionnel
Inscription : mars 2002
Messages : 632
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2002
Messages : 632
Points : 1 466
Points : 1 466
Par défaut Réduisez jusqu'a plus de 65% la taille de vos exécutables

le compilateur de Borland C++ Builder n'efface pas dans
les fichiers compilés de type .exe ou .ocx les fonctions exportés
ce qui a pour effet d'alourdir la taille de l'exe

de plus il genère également une table de relocation ,inutile dans le cas de fichiers de type .exe ou .ocx

ces deux tables augmente la taille de votre exécutable d'environ 17%

j'ai creé un outil permettant a l'aide de UPX de réduire la taille finale de
l'exécutable de plus de 65 %

cet outil s'appelle BCBStriper



BCBStriper peut s'installer dans le menu contextuel de l'explorateur pour les extensions de fichier de type .exe et .ocx
vous pouvez également l'installer dans la boîte à outils de C++Builder

option de commande
  • /Install Installation de BCBStriper dans le menu contextuel
    /Uninstall suppression de BCBStriper du menu contextuel
    /FileName Stripping de l'exécutable

en cas d'intérêt manifeste pour la structure interne des fichiers Exécutables (PE) je rédigerais un tutorial a cet effet

vous pouvez le télécharger ici http://djmsoftware.developpez.com/Bc...StriperExe.zip
__________________
A lire : Les règles du forum
DjmSoftware est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2004, 23h31   #2
gandf
Membre confirmé
 
Inscription : juillet 2002
Messages : 440
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 440
Points : 294
Points : 294
Bonsoir,
Une petite question :
C'est juste un frontend lancer upx? Ou il fait d'autres actions?
C'est à dire est-ce que c'est ton programme qui enlève ce qui sert à rien ou upx?

Sinon, j'ai aussi fait il y a quelques temps une application pour lancer upx sans ligne de commande : http://gandf.chez.tiscali.fr/dev.htm dans la partie pour upx.
gandf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2004, 06h19   #3
DjmSoftware
Rédacteur/Modérateur
 
Avatar de DjmSoftware
 
Homme
Responsable de projet fonctionnel
Inscription : mars 2002
Messages : 632
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2002
Messages : 632
Points : 1 466
Points : 1 466
Bonjour,

cette application n'est pas un simple front-end pour Upx
elle supprime également 2 table inutiles des fichiers executables
  • la table de relocation (gain environ 7%)
    la table d'exportation (gain environ 10%)

on peut égalememt ensuite séléctionner l'option Upx qui permet d'obtenir des gains en taille de 65% et plus

j'ai même otenu des facteurs impressionants de 73% avec des applications WxWidgets

cordialement
__________________
A lire : Les règles du forum
DjmSoftware est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2004, 10h07   #4
BOUBOU81
Membre confirmé
 
Avatar de BOUBOU81
 
Inscription : juin 2004
Messages : 357
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 357
Points : 225
Points : 225
Envoyer un message via MSN à BOUBOU81
salut moi j'ai essyé ton prog et magnifique de 8,1Mo, je suis passé a 1,7Mo
Mais le truc c'est que je comprend pas comment il peut le réduire d'autant, que fait exactement la fonction upx j'ai bien compris ce que tu avais rajouté, mais upx ne fait qu'une compression ou auter chose.
une fois effectué mon programme fonctionne t'il exactement comme avant, ou faut-il ajouter des composants quand on l'export sur une autre machine ou il n'y a pas builder?
Désolé si mais question sont bete mais j'aimeraie comprendre un peu mieux comment ça fonctionne :
__________________
Boubou from The SpAcE GaLaXy....
AhAhAhAhAh
BOUBOU81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2004, 12h30   #5
DjmSoftware
Rédacteur/Modérateur
 
Avatar de DjmSoftware
 
Homme
Responsable de projet fonctionnel
Inscription : mars 2002
Messages : 632
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2002
Messages : 632
Points : 1 466
Points : 1 466
bonjour,
Upx est une compresseur de fichier executables comme l'est par exemple Winzip
la différence est que un programme compressé avec UPX se décompresse automatiquement en mémoire lors de son chargement par l'OS
dans ton cas le taux de compression est phénoménal ~79 %
ce qui signifie probablement que tu a beaucoup de Fiches(Form)

ton programme fonctione tout a fait comme avant
UPX rajoute dans une partie du fichier exe le code pour décompresser
le fichier en mémoire

cordialement
__________________
A lire : Les règles du forum
DjmSoftware est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2004, 18h05   #6
colonel95
Invité régulier
 
Inscription : juillet 2004
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 8
Points : 9
Points : 9
Envoyer un message via MSN à colonel95 Envoyer un message via Yahoo à colonel95
Bonjour,

Je développe des applications de calculs avec interfaces et en effet j'ai essayé bcbstriper et upx. Cela marche très bien sauf pour certains exe où au démarrage j'ai une erreur d'adressage qui plante l'appli, ce qui n'est pas le cas sans compression. A quoi cela peut-il être dû ?
Merci.
colonel95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2004, 02h06   #7
TheDarkLewis
Membre à l'essai
 
Inscription : juillet 2004
Messages : 38
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 38
Points : 21
Points : 21
Merci !!! Allé luya (je sais pas comment on écrit) lol pour ton SUPER PROG !


PS : UPX rend le code asm plus difficile à lire non en plus ? (cool contres crackers débutants) non ?
TheDarkLewis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2004, 14h43   #8
Kerod
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 706
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 706
Points : 18 331
Points : 18 331
Merci beaucoup!!!elle est génial ton appli!!!
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2004, 16h07   #9
jagboys
Membre régulier
 
Avatar de jagboys
 
Inscription : septembre 2004
Messages : 159
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 159
Points : 70
Points : 70
Merci bien pour ton application !
ça marche très bien !
Bravo
jagboys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2005, 16h18   #10
Kaji
Membre habitué
 
Inscription : mai 2002
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 317
Points : 147
Points : 147
Par défaut Licence

Je n'ai rien compris dans les textes de licence ...

On peut les utiliser gratuitement pour distribuer des logiciel dans le commerce ?

Le texte de licence d'UPX spécifie "WITHOUT ANY WARRANTY", genre si l'exe du logiciel vendu ne fonctionne plus à cause d'upx, il nous reste les yeux pour pleurer, quoi.

C'est un accessoire pour les amateurs de risque ou bien ?
Kaji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2005, 16h46   #11
Superstivix
Membre éclairé
 
Avatar de Superstivix
 
Inscription : décembre 2003
Messages : 250
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 250
Points : 310
Points : 310
Envoyer un message via MSN à Superstivix
Par défaut Re: Licence

Citation:
Envoyé par Kaji
Le texte de licence d'UPX spécifie "WITHOUT ANY WARRANTY", genre si l'exe du logiciel vendu ne fonctionne plus à cause d'upx, il nous reste les yeux pour pleurer, quoi.

C'est un accessoire pour les amateurs de risque ou bien ?
Moi j'ai utilisé ce logiciel en tests uniquement et il n'y a jamais eu de problèmes!

Si tu veux prévenir tout problème fait une copie de ton executable et comme ça tu pourras toujours revenir en arrière.
__________________
Modérateur Taverne et C++Builder
Règles du Club - Règles de la Taverne
FAQ BCB - sources
Et je mords
Superstivix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2005, 19h01   #12
Sunchaser
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 750
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 42
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 750
Points : 2 398
Points : 2 398
Bonsoir,
J'ai pas pu m'empecher d'essayer...
Comme pour BOUBOU81 dans son message du 28 juill 04, j'ai obtenu
un taux de compression vertigineux (80 %) et un exe qui fonctionne toujours aussi bien.
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2005, 15h38   #13
Philia
Membre à l'essai
 
Inscription : mars 2004
Messages : 29
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 29
Points : 20
Points : 20
Bonjour,

bien que je n'utilise pas BC++ je connais bien Delphi et la taille des exécutables y est du meme volume.

Je voudrais juste signaler deux ou trois points importants.

Il semble que la compression faite par UPX empeche windows de gérer le swap correctement.

J'ai fait des tests sur un exe compressé et sa consommation mémoire augmente de manière sensible par rapport a la version non compressé.

Voila, juste pour dire que je pense que le systeme est valable pour réduire un petit exe qui a vocation a etre distribué ou exécuté a travers un réseau lacal, mais que cela doit etre réservé a de petite applications.

Pour un exécutable de plusieurs MO je ne suis pas sur que réduire la taille de l'exe soit judicieux par rapport a garder une gestion mémoire correcte.
Philia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2005, 20h17   #14
DjmSoftware
Rédacteur/Modérateur
 
Avatar de DjmSoftware
 
Homme
Responsable de projet fonctionnel
Inscription : mars 2002
Messages : 632
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2002
Messages : 632
Points : 1 466
Points : 1 466
bonsoir,
pourrrais tu m'expliquer la méthode que tu a utilisée pour comparer la consommation mémoire de 2 executable, l'un compacté et l'autre non

il est évident que lors du chargement de l'exécutable compressé la consomation mémoire soit plus grande que celle du même exeécutable compressé mais dés cette phase passée la consommation mémoire est identique

la gestion mémore sous Win32 est faite de telle manière que lors du chargement du programme l'OS donne au programme un espace de travail plus grand que nécessaire au fonctionnement du programme
ensuite de manière dymanique en fonction de la consommation générale de mémoire l'OS va réduire la mémoire utilisée par les différents process

raison pour laquelle je ne suis pas d'accord avec ton analyse

j'ai développé et utilisé des executables de gestion de base de donnée d'une taille de plus de 3 Mega que j'ai ensuite compressé avec BCBstriper sans aucun problème de stabilité de l'application et des PC sur lequel l'application était executée

un avantage significatif de la compression d'éxécutable est la vitesse de chargement
le temps de décompression en mémoire est négligable par rapport à la différence lors du chargement du même exécutable non compressé sur un support disque ou réseau

cordialement
__________________
A lire : Les règles du forum
DjmSoftware est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2005, 09h07   #15
dvsoft
Rédacteur
 
Avatar de dvsoft
 
Inscription : août 2002
Messages : 173
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 173
Points : 293
Points : 293
Bonjour,

Allez faire un tour sur cette page

http://www.jrsoftware.org/striprlc.php

En bas de la page

Why not use an EXE compressor?

Alain
dvsoft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2005, 17h45   #16
gandf
Membre confirmé
 
Inscription : juillet 2002
Messages : 440
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 440
Points : 294
Points : 294
En fait, votre site indique juste que l'on consomme plus de mémoire si l'exécutable est lancé plusieurs fois et que sur les système avec peu de mémoire, c'est plus lent.

Alors, pour les petits programmes, cela ne pose pas de problème au vu de la quantité de mémoire dont l'on dispose aujourd'hui.
Pour les programme beaucoup plus gourmand et plus gros (imaginons que l'on face un logiciel comme 3DSmax), le projet consomme énormément mais le poid de l'exécutable n'est pas important. On ne le compresse donc pas.

J'ai fait un test pour voir si cela était vrai. En lançant 2 fois mon exécutable compressé, obtient dans le taskmanager de windows 2 process consommant autant de ressource l'un que l'autre.
Je les ferme et lance 2 fois l'exécutable non compressé.
Résultat parfaitement identique. Soit, je me trompe et l'on ne peut pas se fier à cette méthode avec le taskmanager, soit le gars a émis des hypothèses sans même vérifier. Tout ce qui est écris sur internet n'est pas toujours vrai et je pense que cette personne n'a pas vérifié son information.
gandf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2005, 18h12   #17
dvsoft
Rédacteur
 
Avatar de dvsoft
 
Inscription : août 2002
Messages : 173
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 173
Points : 293
Points : 293
Bonjour,

Citation:
soit le gars a émis des hypothèses sans même vérifier.
Jordan Russel n'est pas du genre à donner des informations sans avoir vérifier au paravent..

Toujours est il que chacun est libre d’utiliser ou pas un compresseur d’exécutable.
Il existe des pour et des contres, c’est a chacun de voir et faire en fonction de ce qui lui convient le mieux,
nous ne somme là que pour échanger librement des idées.

ALain
dvsoft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2005, 19h38   #18
DjmSoftware
Rédacteur/Modérateur
 
Avatar de DjmSoftware
 
Homme
Responsable de projet fonctionnel
Inscription : mars 2002
Messages : 632
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2002
Messages : 632
Points : 1 466
Points : 1 466
Bonsoir,
la gestion mémoire sous Win32 a toujours été un sujet diviseur
je suis en partie d'accord avec l'avis de Jordan Russel
mais avec les PC équipé en standard de plus de 128 Mega sous XP ou 2000 le fait d'utiliser un programme compressé avec UPX en momo ou multi instance n'affecte d'aucune manière la stabilité du programme compressé et ou de l'OS

cordialement
__________________
A lire : Les règles du forum
DjmSoftware est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2005, 20h19   #19
gandf
Membre confirmé
 
Inscription : juillet 2002
Messages : 440
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 440
Points : 294
Points : 294
Citation:
Multiple instances of a compressed EXE/DLL create multiple instances of the code in memory. If you have a compressed EXE that contains 1 MB of code (before compression) and the user starts 5 instances of it, approximately 4 MB of memory is wasted. Likewise, if you have a DLL that is 1 MB and it is used by 5 running applications, approximately 4 MB of memory is wasted. With uncompressed EXE/DLLs, code is only stored in memory once and is shared between instances.
Comment faire pour vérifier ceci?

Je ne connais pas cette personne et c'est justement pour cela que je demandait si l'on pouvait vérifier avec le taskmanager ce problème.

Ayant fait le test ci dessus, je ne trouve pas de différence comme indiqué sur son site.
gandf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 10h30   #20
deruyter
Nouveau Membre du Club
 
Inscription : mai 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2005
Messages : 40
Points : 35
Points : 35
Par défaut C'est énorme

Mon exe est passé de 2914ko à 610ko soit -79%.
Génial
deruyter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h38.


 
 
 
 
Partenaires

Hébergement Web