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

Delphi Discussion :

Optimiser taille d'un executable


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Par défaut Optimiser taille d'un executable
    Bonjour, j'aimerai optimiser mon application, non pas d'un point de vue de rapidité mais de la taille "physique" que l'executable occupe sur le disque.

    Mon fichier exe fait 1 Mo et j'aimerais le réduire au moins à 800 Ko.

    J'ai trouvé pas mal de chose sur l'optimisation en mémoire mais pas en taille.

    Pourriez vous m'indiquer les grandes règles à respecter, et les choses à faire attention.

    Merci.

  2. #2
    Membre chevronné
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Par défaut
    bonjour, afin de réduire le poids de l'exe voici ce que l'on peut faire

    => exporter toutes les images dans une DLL ressource
    => Enlever les uses inutiles
    => éviter des copier-collers de code, préférer créer des procédures et fonctions.

    Vérifier dans projet>option> paquets que la case "construire avec les paquets d'exécution" est décochée.

    déjà avec ça, c'est pas mal Il doit surement y avoir d'autres ruses de chacal que je connais pas.
    Bon courage !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Par défaut
    => Enlever les uses inutiles
    => éviter des copier-collers de code, préférer créer des procédures et fonctions.
    ça c'était déja fait, je viens de passer deux semaines à mettre le code au propre pour n'avoir que des fonctions et procédure bien distincte.

    Vérifier dans projet>option> paquets que la case "construire avec les paquets d'exécution" est décochée.
    ça je ne sais pas du tout ce que c'est, je viens de vérifier et c'était décoché par defaut.

    Quand aux dll je ne peux pas les utiliser car l'executable doit absolument tenir dans un seul fichier.

    Merci pour tes réponses

  4. #4
    Membre averti
    Inscrit en
    Février 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 22
    Par défaut
    Tu peux utiliser le compresseur d'exécutable "UPX" qui est gratuit.
    Pour un fichier d'un mégaoctet, on obtient environ 300 ko voire un peu moins.

  5. #5
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 700
    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 700
    Par défaut
    Citation Envoyé par -Sylvain Leray-
    => Enlever les uses inutiles
    Comment peut-on automatiser ce genre de chose ?

    : :
    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
    Membre chevronné
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Par défaut
    Citation Envoyé par Lung
    Citation Envoyé par -Sylvain Leray-
    => Enlever les uses inutiles
    Comment peut-on automatiser ce genre de chose ?

    : :
    la méthode bourrine consiste à effacer tout les uses et de recompiler, Delphi va alors remettre les uses nécessaires au bon déroulement de la compilation.

    la meilleure méthode est encore d'être rigoureux et de ne jamais mettre un use dans l'utiliser et de les enlever quand on ne s'en sert plus, je ne vois pas trop comment faire pour détecter un Use inutile automatiquement...

  7. #7
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 700
    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 700
    Par défaut
    Citation Envoyé par -Sylvain Leray-
    la méthode bourrine consiste à effacer tout les uses et de recompiler, Delphi va alors remettre les uses nécessaires au bon déroulement de la compilation.

    la meilleure méthode est encore d'être rigoureux et de ne jamais mettre un use dans l'utiliser et de les enlever quand on ne s'en sert plus, je ne vois pas trop comment faire pour détecter un Use inutile automatiquement...
    Ok. C'est ce que je pensais.
    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)

  8. #8
    Membre éclairé Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Par défaut
    et si tu a du temps , tu peut toujour t'amuser a coder sans la VCL(exe ~ 15 kb--> 9,5 avec UPX), mais bien sure si ton application n'est pas trops grande , sinon sa devient un perte de temps.

  9. #9
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Si tu veux faire une application graphique pas trop compliquée de 80 ko sans te fatiguer avec l'Api Windows et les Handles, tu peut aussi utiliser KOL-MCK ( avec ça, j'ai fait un bloc-notes de 40 ko sans rien coder "à la main" )

  10. #10
    Membre confirmé Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Par défaut
    Citation Envoyé par Manopower
    je ne vois pas trop comment faire pour détecter un Use inutile automatiquement...
    Tu peux utiliser cet outil la :
    http://www.peganza.com/download.htm

  11. #11
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 477
    Par défaut
    salut

    a savoir que dans la vcl c'est surtout l'unite form qui grossis ton exe
    en fait c'est les ressouces attachées par defaut des diferrents composants
    le plus gros etant la forme

    @+ Phil

  12. #12
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993

  13. #13
    Membre éclairé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Par défaut
    Citation Envoyé par Lung
    Comment peut-on automatiser ce genre de chose ?

    : :
    Il existe un Expert pour Delphi qui le fait très bien, c'est cnPack Wizard : http://cnpack.org

    Il possède beaucoup d'autres fonctions fort utiles, mais il en possède tellement qu'au début ça choque quand on voit toutes les modifs dans Delphi, mais il est très utile.

  14. #14
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par Costello
    Tu peux utiliser le compresseur d'exécutable "UPX" qui est gratuit.
    Pour un fichier d'un mégaoctet, on obtient environ 300 ko voire un peu moins.
    Attention, il peut-être "bloqué" par les anti-virus (détection heuristique).
    L'anti-virus affiche une alerte avec les EXE compressés avec UPX.
    C'est dommage.

  15. #15
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Par défaut
    Citation Envoyé par ced00

    /snip/

    J'ai trouvé pas mal de chose sur l'optimisation en mémoire mais pas en taille.

    /snip/

    Merci.
    Peux-tu me diriger vers les bonnes adresses?

    Merci

  16. #16
    Membre éclairé
    Avatar de korntex5
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juin 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 417
    Billets dans le blog
    1
    Par défaut
    autre solutiotu peux utiliser aspack qui compresse ton exe en un autre .exe
    qui sedécompresse automatiquementà chaques lancement de ton exe moi mon exe est passé je crois de 11Mo a 3Mo

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    faut commencer par virer tous les uses qui n'empêche pas la compilation

    ensuite si tu n'utilises pas énormément de fonction dans les uses restant, tu va les cherchers et les déclare dans ta fiche principal

    je suppose que c'est une appli sans form ? sinon ça sert à rien

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    404
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 404
    Par défaut
    tu as aussi StripReloc qui peut te faire gagner quelques dizaines, centaines de Ko suivant la taille de ton programme.

Discussions similaires

  1. Optimiser taille de la base
    Par laurent35 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 25/11/2006, 11h00
  2. Taille de l'executable et les DLL
    Par aityahia dans le forum Delphi
    Réponses: 1
    Dernier message: 16/05/2006, 11h39
  3. Réponses: 5
    Dernier message: 23/10/2005, 11h47
  4. Taille de l'executable ENORME !!!
    Par kase74 dans le forum EDI
    Réponses: 12
    Dernier message: 21/10/2005, 19h28
  5. Optimiser la vistesse d'execution
    Par minimoi1234 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2005, 11h45

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