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

C++Builder Discussion :

La compilation dure 15mn


Sujet :

C++Builder

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut La compilation dure 15mn
    Bon j'en ai un peu marre de subir 15mn de compilation à chaque modification alors je poste ici ma question: Y'a t'il un moyen de faire en sorte que BCB ne compile que les fiches qui ont été modifié ? Mon application compte une 30 de fiches, alors quand il décide de tout recompiler c'est la misère.

    Dés fois il compile seulement une fiche qui a été modifié s'il s'agit d'une modife qui touche un attribut de composant ou un évènement. Par contre, dés que j'ajoute une fonction, un attribut, il se lance dans toute la compilation, et c'est vraiment pénible.

    Honnêtement il met 15mn facile pour compile, bonjour la productivité... J'espère qu'une solution existe.

    A bientôt.

  2. #2
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut
    Quand tu modifies un composant, cela impacte le fichier d'entête correspondant à la fiche qui possède ce composant. Si ce fichier d'entête est "includé" dans tes autres fiches parce que tu appelles des fonctions de la fiche modifiée, ces autres fiches seront logiquement recompilées. C'est probablement ce qui t'arrive.
    RAD Studio 10.3 / Ubuntu 20.04 - RYZEN 7 2700X - 24Go de RAM

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 66
    Points
    66
    Par défaut
    ...bon il faud voir aussi ce que tu as comme pc

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Mon PC est antique, un P3800 avec 256MO et WINXP. C'est misérable, je sais normalement ça compile beaucoup plus vite. Au début à peine 5mn.

    Il est vrai que j'ai des fichiers de controles qui incluent pratiquement tous les autres fichiers. Du coup, si je modifie un fichier (genre je rajoute une ligne), s'il compile toutes les inclusions...

    Mais n'y a t'il pas une option pour demander à Builder de compiler juste le fichier modifier, tant que je ne lui ai pas donné ma bénédiction pour tout recompiler ?

  5. #5
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut
    Citation Envoyé par kurkaine
    Mon PC est antique, un P3800 avec 256MO et WINXP. C'est misérable
    Ton problème n'est pas tant d'avoir un 3800 que de manquer de mémoire. Tâche de passer à 1Go et tu n'auras plus de lenteur rédhibitoire.

    Citation Envoyé par kurkaine
    n'y a t'il pas une option pour demander à Builder de compiler juste le fichier modifier, tant que je ne lui ai pas donné ma bénédiction pour tout recompiler ?
    Tu peux compiler ta fiche avec Alt-F9 mais lors de la liaison, tout sera de nouveau compilé. Il te faut gérer plus astucieuserment tes include.
    RAD Studio 10.3 / Ubuntu 20.04 - RYZEN 7 2700X - 24Go de RAM

  6. #6
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    je voudrais juste signaler qu'un P3800 256MO, c'est pas une merde.
    Effectivement, l'en-tête de la fiche ou la classe doit certainement toucher beaucoup d'autres classes, ce qui fait que lorque tu ne compiles que la fiche, cela revient à compiler tout le projet.
    As-tu essayé de cocher l'options "En-tête en cache au démarrage" accessible par "Outils" -> "Options d'environnement", onglet "préférences" ?
    @ bientôt...

    Salut & @+ sur 3W!

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    Salut,

    Altau a complètement raison c'est surtout un problème de RAM. En plus Windows XP est assez gourmand, il prend au moins 200 Mo et encore bien plus si tu as le SP2. Donc voilà CQFD, ne cherche pas plus loin.

    J'ai un P IV 2,8 Ghz avec 512 Mo et mon principal projet met plus de 10 minutes à se construire alors heuresement que je n'ai pas la même config que toi...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3

  9. #9
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par kurkaine
    Honnêtement il met 15mn facile pour compile, bonjour la productivité... J'espère qu'une solution existe.
    A bientôt.
    *Regarder s'il n'y pas de fichiers temporaires qui devraient être effacés (avec une tilde comme extension)
    *défragmenter le disque parce que s'il est fragmenté cela peut ralentir la compilation

    *faire des paquets comme le permet BCB ; cela limitera le temps de compilation
    Sinon en dernier recours + de RAM

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Merci de vos conseils. Par contre, concrètement que se passe t'il si je coche l'option "En-tête en cache au démarrage" ? (concernant les pbs de lenteurs ou rapidité de compilation)

    Sinon, pour mes includes, c'est mort, je ferai attention dans mon prochain projet, là y'a trop de fichier pour tout reprendre et mettre de l'ordre. Tant pis...

  11. #11
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Points : 334
    Points
    334
    Par défaut
    J'ai le même pb avec mon soft (cela ne prends pas 15 minutes mais c'est très lent). Le pb est que CBuilder gère très mal les entêtes pré-compilés, c'est clair.
    échaudé par ces lenteurs j'ai dupliqué mon projet en un projet léger dans lequel j'ai elevé tous les fichier pascal (il ne reste plus que des cpp). Les fichiers pascal contenaient heureusement pour moi des classes dont je pouvais me passer pour faire des tests basics.
    Bref, je suis passé de 5 minutes de compilation à moins d'une minute. Et depuis 2 ans maintenant le projet compile toujours aussi vite, et l'autre toujours aussi lentement.

    Je pense donc que c'est le pascal que CBuilder digère mal dans ses entêtes pré-compilés. Mais va savoir, comme dirait l'autre.

    Yarp
    www.senosoft.com

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Bonjour turkaine,
    Tu m'as aidé récemment pour l'installation et la lenteur du démarrage.
    Je n'y connais rien, j'ai pris c++builder pour "me mettre à la page".
    Mais j'ais vu soit sur le forum soit dans les tutoriaux un sujet style "optimiser compilation" ou "optimiser la compilation" de Géronimo ici ou sur devellopez.com

    Peut-être aucun rapport.
    Bêtement as tu essayer de compiler en mode sans échec? Ca peut sembler stupide.
    Cordialement,
    A+

  13. #13
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par yarp
    Le pb est que CBuilder gère très mal les entêtes pré-compilés, c'est clair.
    www.senosoft.com
    Je le répête encore une fois il faut faire des paquets .bpl personnalisés.....
    sinon des dll qu'on charge dynamiquement..
    la compilation prend du temps avec BCB car BCB génére de gros exécutables

  14. #14
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    faire des paquets .bpl personnalisés.....
    sinon des dll qu'on charge dynamiquement
    Comment faire des paquets .bpl, et à quoi servent-ils ??? Je ne vois pas quoi mettre dans une dll, j'ai juste une petite classe générique. Sinon, ce qui fait que je dois faire des inclusions incroyable, c'est que je travail sur des bases de données, et j'ai un fichier de module de données (regroupant tous mes composants TADO). J'utilise beaucoup de champs calculés, du coup, ce fichier est énorme et toutes les classes doivent l'inclure. Je ne sais pas si je peux mettre ce fichier en dll, à priori si j'ai bien compris sur ce qu'est une dll, il s'agit d'une libraire dynamique contenant des fonctions génériques...

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    j'ai eu le même problème sur un projet assez conséquent. J'avais trouvé un poste sur Developpez.com je crois traitant de la directive de compilation #pragma hdrstop .
    Pour faire simple tu trouves cette directive dans ton fichier .cpp. Il faut s'assurer que toutes les lignes placées avant cette directive soit toujours dans le même ordre dans tous tes fichiers .cpp. Désolé je n'ai pas pris le temps de retrouver ce post mais il doit encore existé.
    Pour voir si tu as un problème de ce coté là regarde le nombre de fichier . NomApplication.#00 et la taille de ton fichier NomApplication.csm. (es fichiers se trouvent dans Program Files\Borland\CBuilder5\Lib )
    Si tu te retrouves avec une multitude de fichier #00 #01 #02 ... tu pourras gagné du temps à la compilation en ordonnant de la même manière tous les includes fait avant pragma hdrstop

    bon courage

  16. #16
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Points : 334
    Points
    334
    Par défaut
    Oui Tiwaz tu as raison, c'est la théorie pour faire fonctionner les entêtes précompilés. Mais par définition les .cpp d'un projet ne partagent pas tous les mêmes .h, tu as un .cpp main et des sous-ensembles alors mettre les .h dans tous les .cpp je trouve que cela n'a aucun sens et je m'y refuse.
    Pour reprendre mon cas, d'énervement j'ai viré toutes les #pragma hdrstop et cela n'a rien changé au temps de compilation, ni en plus ni en moins

  17. #17
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour,
    tu peux utiliser le composant suivant
    il améliore de manière très significative la vitesse de compilation

    cordialement
    Fichiers attachés Fichiers attachés
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  18. #18
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Comment utiliser ce fameux composant ?

  19. #19
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour,
    il suffit de charger le fichier BPL correspondant dans l'IDE
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  20. #20
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    Il est vrai que ce composant accelere de facon significative la compilation, mais ceci dit j'ai eu quelque souci avec car il me retrouvai des fiches que j'avais supprimé du projet ou d'autre qui était en ancienne version.

    Peut-etre n'ai je pas fais celà correctement
    Boubou from The SpAcE GaLaXy....
    AhAhAhAhAh

Discussions similaires

  1. Visual Studio 2010 : Durée de compilation
    Par vroland26 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 18/06/2014, 08h40
  2. DELPHI 7 - Compilation qui dure des heures
    Par URIOS dans le forum EDI
    Réponses: 11
    Dernier message: 13/01/2010, 09h51
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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