IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Optimisation de la taille de l'exe


Sujet :

Langage Delphi

  1. #1
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut Optimisation de la taille de l'exe
    Bonjour,

    J'utilise delphi XE2.
    Je suis énormément étonné de la taille excessive de l'exécutable en release.
    Pour une toute petite application de rien du tout, j'arrive à 2.5Mo alors qu'en Delphi 4, pour la même application j'arrivais à 200 ou 300Ko.
    De plus, par erreur j'avais laissé dans l'entête du uses FMX.Dialogs alors que je n'utilisais aucune fonction de cette librairie, le code avait doublé (plus de 5Mo) et j'ai mis un moment à voir que cela venait de ça !

    Quelles sont les possibilités d'optimisation tout en gardant les packages dans le code ?
    Peut-on éviter qu'il inclus dans le code des librairies non utilisées ?
    Merci
    Franck

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    C'est une obsession la taille des Exe : même débat en C++Builder et de [D6] à [XE2] embompoint des exel, ça date à peine de avril 2012

  4. #4
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    oui ça doit être une obsession :-)
    Ok, Il n'y aurait donc pas de solution coté compilation.
    En revanche, pour réduire l’exécutable après compilation voici ce que j'ai trouvé : http://upx.sourceforge.net/
    Mon exe de 2.3Mo est réduit à 900Ko : ça tient sur une disquette

  5. #5
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 676
    Points : 7 077
    Points
    7 077
    Par défaut
    C'est pas anodin quand même :
    1,82 Mo >> 8 Mo
    8 Mo >> 12 Mo

    Certes, les PC ont plus de mémoire (même si je ne trouve pas que ce soit une bonne raison), mais quand il faut faire transiter ça par le réseau, c'est plus long.

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    A quoi correspond tes chiffres Lung ?
    Attention, comme l'a fait remarqué franckcl, FMX étant une libraire entièrement codé par Embarcadero, son volume est colossal !
    Ce qui était avant des briques du GDI et maintenant du pur dessin, c'est bcp de code donc de gros EXE
    Il ne faut pas inclure de FMX dans un projet VCL, tout comme il ne fallait pas inclure du CLX, c'est ce qui me faisait penser que l'optimisation du code non-utilisé ne concerne que nos codes mais pas les DCU fournie

    Pendant 3 ans, j'ai maintenu une application, elle existait depuis 10 ans, avait subi une migration Dbase vers MySQL, en 2007 sous D7, l'exe faisait déjà 16Mo, je crois que la dernière version de 2010 frôlait les 18Mo !

    La même application migrée de D7 à DXE2, ferait facilement 25Mo aujourd'hui ou plus, si JVCL, TMS qui était utilisé ont grossi aussi

    Sinon pour un passage de 300Ko en D4 vers 2,5Mo en DXE2, je pense qu'il y aussi une gestion différente des packages !
    En D4, tu utilisais les BPL (sans le savoir peut-être)
    En DXE2, tu as modifier l'option de projet pour les intégrer à l'exe !

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    A quoi correspond tes chiffres Lung ?
    Attention, comme l'a fait remarqué franckcl, FMX étant une libraire entièrement codé par Embarcadero, son volume est colossal !
    Ce qui était avant des briques du GDI et maintenant du pur dessin, c'est bcp de code donc de gros EXE
    Il ne faut pas inclure de FMX dans un projet VCL, tout comme il ne fallait pas inclure du CLX, c'est ce qui me faisait penser que l'optimisation du code non-utilisé ne concerne que nos codes mais pas les DCU fournie

    Pendant 3 ans, j'ai maintenu une application, elle existait depuis 10 ans, avait subi une migration Dbase vers MySQL, en 2007 sous D7, l'exe faisait déjà 16Mo, je crois que la dernière version de 2010 frôlait les 18Mo !

    La même application migrée de D7 à DXE2, ferait facilement 25Mo aujourd'hui ou plus, si JVCL, TMS qui était utilisé ont grossi aussi

    Sinon pour un passage de 300Ko en D4 vers 2,5Mo en DXE2, je pense qu'il y aussi une gestion différente des packages !
    En D4, tu utilisais les BPL (sans le savoir peut-être)
    En DXE2, tu as modifier l'option de projet pour les intégrer à l'exe !
    Non, XE2 a vraiment pris du poids...c'est d'autant plus sensible quand tu sautes de D<=7 à DXE2

  8. #8
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 676
    Points : 7 077
    Points
    7 077
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    A quoi correspond tes chiffres Lung ?
    Deux exemples d'applications VCL, passant de D6 à D2010.
    Je veux bien comprendre que l'unicode et les nouvelles fonctionnalités sont passées par là, mais ça fait beaucoup quand même.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] optimisation de la taille d'un sous formulaire
    Par patmar83 dans le forum IHM
    Réponses: 3
    Dernier message: 07/04/2009, 16h17
  2. réduction taille processus sqlsvr.exe
    Par ozzy75 dans le forum Administration
    Réponses: 2
    Dernier message: 27/01/2009, 19h32
  3. [Lazarus] Diminuer la taille de l'exe
    Par bubulemaster dans le forum Lazarus
    Réponses: 10
    Dernier message: 20/12/2007, 17h45
  4. La Taille d'un EXE
    Par alg_dev dans le forum Delphi
    Réponses: 17
    Dernier message: 26/04/2007, 12h33
  5. wxWindows et DevC++ : taille de l'exe énorme !
    Par ovh dans le forum Dev-C++
    Réponses: 7
    Dernier message: 19/11/2003, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo