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 expérimenté 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
    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 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 076
    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
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre expérimenté 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
    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
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    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 704
    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.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 076
    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 !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Expert éminent
    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
    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
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    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 704
    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.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

+ 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