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 :

de [D6] à [XE2] embompoint des exe


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut de [D6] à [XE2] embompoint des exe
    Bonjour,

    J'ai acquis XE2 (starter) et repris un de mes programmes. Après quelques recherches pour pouvoir l'adapter et le compiler sous XE2, je constate que le même programme, compilé sous D6 fait 1.527Ko, et sous XE2 fait maintenant 3.467 Ko.
    Ca fait quand même plus du double

    J'ai décoché toutes les cases à cocher des options de debug, dans le menu "projet | options | compilateur", ceci dans les 3 onglets, puis fait "reconstruire" avant de recompiler, mais la taille reste exactement la même.

    Je n'ai rien trouvé concernant la diminution de la taille des programmes compilés sous XE ou XE2.

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 511
    Points : 2 783
    Points
    2 783
    Billets dans le blog
    10
    Par défaut
    Ceci est une question souvent posée. Entre autres, Unicode est passé par là. Sur les ordi d'aujourd'hui cette taille ne pose généralement pas de problème.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 737
    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 737
    Points : 25 654
    Points
    25 654
    Par défaut
    Déjà, pense que les chaines occupent le double de place à cause l'Unicode (2 octets par caractère au lieu d'un), mais bon un programme ne contient pas que des chaines

    Il y a plein de nouvelles fonctions, du code qui prend donc de la place

    Cela inclue aussi la gestion de l'OS, si D6 gérait jusqu'a Win2000, D7 lui a apporté des variantes de code pour XP, 2010 a apporté des variantes pour Vista et XE pour Seven, ainsi tu as plus de code qu'avant pour par exemple, la transparence, la gestion de la zone 'glass', tout ce code dans la TForm, même si tu ne l'utilise pas, il est là, bon, il y a aussi l'optimisation du code non-utilisé, mais j'ignore totalement si cela concerne aussi la VCL, car lorsque l'on livre un projet avec les BPL, ces derniers contiennent du code que l'on utilise pas, est-ce qu'un Exe autonome contient le package complet ?

    Mais, ce n'est pas rapport à un projet FMX, là tu passe à 8Mo pour juste une Form !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Merci pour vos réponses

    J'ai bien pensé à l'unicode (j'ai potassé pas mal depuis ma commande de XE2 ), mais je serai surpris que, même en doublant la longueur de toutes les chaînes (il n'y a aucun caractère exotique dans mon programme et les caractères ne passent pas tous à 4 octets) ce soit la seule raison (il y a quand même presque deux millions d'octets en plus).

    J'ai peut-être intérêt à continuer de compiler sous D6, n'ayant pas besoin (pour l'instant, du moins) de tout ce qui doit être ajouté dans l'exe d'une part, et le programme s'exécutant sous XP d'autre part.

    Il y a peut-être des infos sur cette question dans l'aide Embarcadero, mais je n'ai rien trouvé d'intéressant

  5. #5
    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
    Par défaut
    Toutes les unités ont évolué depuis D6. Il est normal que la taille augmente quand même.
    Après utilises tu des composants extérieurs car eux aussi peuvent faire gonfler ton Exe.
    Sinon Un exe de 1.5mo ou 3mo de nos jours c'est rien. Je ne vois pas ce qui pose problème s'il fonctionne comme avant.

  6. #6
    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 466
    Points
    28 466
    Par défaut
    on peut déjà comparer les compilations d'un projet complètement vide pour voir l'évolution des fonctions systèmes. ça monte régulièrement de version en version mais ça reste acceptable. 8k sous D6, 21.5Ko sous XE2

    ensuite un projet avec juste un fiche, et là en effet XE2 a pris du poids depuis D6. 386k sous D6 1.24Mo sous XE2.

    ce qui me semble nouveau depuis D6
    IOUtils
    les class constructor...dans le cas d'une fiche sans bouton on a malgré tout un appel au constructeur de class TButton...je ne sais pas bien pourquoi...
    et sans doute un tas d'autres choses

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 400
    Points : 652
    Points
    652
    Par défaut
    RTTI aussi doit y être pour quelques centaines de Ko, il devient de plus en plus bavard au fils des ans

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/11/2006, 14h37
  2. [debutant] Quel EDI choisir pour faire des exe autonomes sous Windows ?
    Par damned3 dans le forum Choisir un environnement de développement
    Réponses: 10
    Dernier message: 06/11/2006, 15h00
  3. Réponses: 46
    Dernier message: 04/08/2006, 01h18
  4. Fermer des .exe VB via un autre .exe VB
    Par Gézabel dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/10/2005, 13h21
  5. Réponses: 7
    Dernier message: 10/10/2005, 19h54

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