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++ Discussion :

Rapidité d'exécution dans/hors IDE


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 65
    Par défaut Rapidité d'exécution dans/hors IDE
    Bonjour,

    J'ai une question qui me turlupine depuis un petit moment.

    J'ai codé un programme sous C++ Builder 5 qui effectue d'assez gros traitements (de l'ordre de 10 minutes en moyenne pour arriver au résultat escompté). Ce programme va rechercher des informations en BDD, effectue des traitements et crée ensuite divers fichiers sur base de ces données.

    Le problème est le suivant : quand je lance le programme depuis l'IDE, les traitements s'effectuent BEAUCOUP plus rapidement que lorsque je le lance depuis la ligne de commande (le programme est destiné à recevoir des arguments de la ligne de commande). Je ne comprends pas une telle différence. D'où cela pourrait-il provenir ?

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Par défaut
    Compiles-tu bien en mode release ?

    Passes-tu des arguments en ligne de commande que tu ne passes pas par l'IDE ?

    Combien est "beaucoup" ? Si ça se compte en une dizaine de secondes, ça peut être le chargement des libs dynamiques ou autres qui sont gardées préchargées lors du lancement dans l'IDE, sinon c'est une différence plus structurelle.

    Le ralentissement est-il proportionnel au temps mis par le programme à s'exécuter ?

    Si tu compiles en release et en debug, lances-tu bien le programme compilé en mode release ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 65
    Par défaut
    Désolé pour la réponse si tardive.

    Alors non, je ne compile pas en mode release, je suis en mode debug (j'ai encore régulièrement besoin de débugger). Par contre, je ne comprends pas bien, comment cela pourrait-il provenir de là vu que si je suis en mode debug, je le suis aussi bien dans l'IDE que lorsque j'exécute l'exécutable depuis la ligne de commande (vu que c'est le même), non ?

    Les arguments de la ligne de commande sont exactement les mêmes dans un cas comme dans l'autre (C/C).

    Quand je dis beaucoup, c'est presque de l'ordre du double.

    Quant à la question de la proportionnalité, je n'en suis pas certain mais je dirais que oui (pas certain car j'effectue toujours mes tests sur les mêmes données pour pouvoir comparer efficacement).

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 65
    Par défaut
    Après compilation en mode release et test des deux manières, voici les résultats :

    Via IDE :
    09:14:14,492 *** Generation V2.0 started on 22/03/2012 9:14:14 ***
    09:25:03,772 ------ End of Generation
    TOTAL : 10 min 49 sec

    Via ligne de commande :
    08:22:05,615 *** Generation V2.0 started on 22/03/2012 8:22:05 ***
    09:07:39,072 ------ End of Generation
    TOTAL : 45 min 34 sec

    Bref, encore pire que ce que je pensais à la base...

    Je me demandais :
    Lorsque je l'exécute sous l'IDE, l'exe est contenu dans le dossier du projet (donc avec tous les autres fichiers .h, .cpp etc.) alors que lorsque je l'exécute via la ligne de commande, je recopie au préalable l'exe dans un autre dossier (et uniquement lui). Ca proviendrait de là d'après vous ? Se pourrait-il que l'absence de certains des fichiers présents dans le dossier du projet soit à l'origine de cette lenteur ?

    Merci d'avance.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Tenebrous Voir le message
    Je me demandais :
    Lorsque je l'exécute sous l'IDE, l'exe est contenu dans le dossier du projet (donc avec tous les autres fichiers .h, .cpp etc.) alors que lorsque je l'exécute via la ligne de commande, je recopie au préalable l'exe dans un autre dossier (et uniquement lui). Ca proviendrait de là d'après vous ? Se pourrait-il que l'absence de certains des fichiers présents dans le dossier du projet soit à l'origine de cette lenteur ?

    Merci d'avance.
    Non, le but de la compilation c'est de proposer un executable indépendant; en plus de ne pas fournir les sources.
    A part dans le cas tordu où ton disque dur/système est très lent à la création de fichiers mais sait les ouvrir et lire correctement, et que ton executable test l'existence de fichiers et les crée le cas échéant, il sera plus rapide à ouvrir&lire dans le premier dossier qu'à executer et créer les fichiers dans le second.
    Enfin personnellement, je n'y crois pas du tout^^

    Tu peux t'en assurer en exécutant le fichier dans son répertoire de compilation en ligne de commande.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 65
    Par défaut
    Effectivement, je confirme, j'ai essayé et c'est toujours aussi lent quand même.
    Bref, je ne comprends vraiment pas cette différence (assez énorme qui plus est)...

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

Discussions similaires

  1. [D7] Exécution dans l'IDE ou non
    Par Charly910 dans le forum Débuter
    Réponses: 2
    Dernier message: 20/12/2014, 09h40
  2. Priorité d'exécution dans une dll
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2005, 15h59
  3. Le lecteur c: est dans quel IDE?
    Par byte dans le forum Windows
    Réponses: 5
    Dernier message: 01/03/2005, 09h49
  4. [VS.NET] [C#] Icone des composants dans l'IDE VS 2003
    Par Ingham dans le forum Windows Forms
    Réponses: 7
    Dernier message: 11/01/2005, 23h50
  5. Pas de liste "A Faire" dans l'IDE de BCB5
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/08/2003, 13h57

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