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 :

pb d'optimisation d'une application


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Novembre 2007
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 369
    Par défaut pb d'optimisation d'une application
    bonjour tout le monde,
    j'avais une application en c# qui tourne normalement et qui me donne un temps d'exécution de 4 secondes, j'ai refait cette application en C++(j'étais obligé) , j'ai eu un temps d'exécution de 70 secondes, est ce normale?
    il faut dire que mon code est un peux long, mais en c# aussi il est long, non pas que en c++.
    merci d'avance pour vos aides

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    t'as bien compilé en Release, et non pas en debug... Ca expliquerait clairement cette différence!

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Ce n'est a priori pas normal. Parmi des points génériques (pour le reste, fudrait voir le programme, ou du moins les points qui prennent longtemps) auxquels je peux penser :
    - En c#, quand on passe un argument à une fonction, en terme de coût, c'est comme si on passait un pointeur. En C++, passer un argument implique une copie, sauf s'il est passé par référence (constante ou pas). Vérifier donc toutes les déclarations de fonction.
    - Une fuite mémoire peut dégrader fortement les performances. La mémoire est-elle bien libérée ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre éclairé Avatar de Vespasien
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 383
    Par défaut
    Tu es sur une plateforme windows. Il est probable que ton C++ soit compilé pour la machine .Net et non directement pour la plate-forme.
    Tu utilises un outil style Windev?

  5. #5
    Inactif
    Inscrit en
    Novembre 2007
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 369
    Par défaut
    Citation Envoyé par JolyLoic
    En c#, quand on passe un argument à une fonction, en terme de coût, c'est comme si on passait un pointeur. En C++, passer un argument implique une copie, sauf s'il est passé par référence (constante ou pas). Vérifier donc toutes les déclarations de fonction.
    j'ai une fonction de type public: void rec(Biblio B){}
    dans un fichier header
    c'est la plus longue fonction elle contient plusieurs boucle for imbriqué et des test de type if.

    qu'est ce que je doit vérifier dans la déclaration des fonctions?
    comment je sache que la mémoire est libérée ou non?
    et c'est quoi la différence entre release et debug et comment je peux compilé en mode release(je doit changé quoi)?

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Si tu modifies ton "Biblio" dans la fonction,
    il faut que la déclaration de la fonction soit :
    Si tu ne modifies pas ton "Biblio" dans la fonction, donc que tu t'en sers simplement pour récupérer des informations, tu dois modifier le prototype de la fonction en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void rec(const Biblio& b)
    Passer par référence (le &) permet de ne pas faire une copie de l'objet que tu passes en paramètre. Cela permet toutefois de le modifier (l'objet original).

    Passer par référence constante (const T&) permet de ne pas faire une copie et interdit de modifier l'objet original. C'est utilisé lorsqu'un objet contient des informations dont on veut se servir sans vouloir modifier cet objet.

    Ces points ont été traités et retraités de nombreuses fois sur ce forum et dans la FAQ.
    Mots clés :
    - référence
    - référence constante
    - passage argument fonction

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

Discussions similaires

  1. Optimisation d'une application
    Par geff22 dans le forum Android
    Réponses: 1
    Dernier message: 05/05/2012, 17h34
  2. optimisation d'une application winform c# avec un thread
    Par Jfrancois57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/08/2011, 13h37
  3. Optimisation d'une application openGL
    Par choko83 dans le forum OpenGL
    Réponses: 2
    Dernier message: 09/07/2010, 10h53
  4. Optimisation d'une Application Facebook pour Association
    Par Le Pole du Coeur dans le forum Facebook
    Réponses: 0
    Dernier message: 10/09/2009, 15h59
  5. [AC-2003] Optimisation d'une application
    Par jimay dans le forum Access
    Réponses: 1
    Dernier message: 10/07/2009, 17h53

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