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 :

Lisibilité VS optimisation


Sujet :

C++

  1. #1
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut Lisibilité VS optimisation
    Ben me revoila toujours pour des questions d'optimisation...

    J'ai commencé par ecrire de maniere assez sale en deroulant tout (definiiton d'objets mis a part bien sur) dans mon main. Tout mon algo se trouve dans un boucle (traitement d'images d'un video oblige), et j'alloue mes structures une bonne fois pour toute avant de commencer à dérouler.

    Mon probleme est le suivant maintenant que je veux ecrire tout ca plus proprement. D'un point de vu performance, laisser l'allocation de la memoire en dehors de ma boucle est la meilleure chose à faire, ce qui implique passer en parametre ces données (ou des pointeurs). Mais du point de vue de la lisibité, il est plus claire de les mettre dans mes sous-fonctions en static pour les allouer au premier appel.... MAIS LE TEMPS D'EXECUTION DANS TOUT CA????

    EDIT: Je précise que les structures en question (matrices) seront surement amenés a changer avec l'uitlisation d'une autre librairie (d'ou ma volonté de les rendre locales)

    merci

  2. #2
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    J'ai fait beaucoup d'optimisation et la perte de performance du aux appels de fonctions ou a la programmation objet est negligeable, presque invisible.

    Ca depend aussi :
    - Des options de compilation que tu utilises
    - De ton ordinateur. Certains processeurs sont parfois optimises pour certaines taches.

    Sinon ensuite il y a toujours possibilite d'optimiser tes appels :
    - En faisant atention a la maniere de faire tes boucles et de ou tu fais tes declarations
    - En travaillant bien tes algorithmes pour en diminuer la complexite au maximum
    - Optimiser les operations et les calculs (pour voir des exemple regarde l'algorithme de Bresenham)
    - Limite le nombre de parametres de tes fonctions ca influence la performance

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    D'abord écris un code propre et lisible, qui pourra évoluer facilement, et ensuite seulement passe un profiler pour optimiser SI le besoin s'en fait sentir.

  4. #4
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    Je vois bien tout ca pour avoir fait un peu d'algorithmie dans le temps, mais d'un point de vue moins theorique, qu'elle sont les differences (perfs et gestion memoire) entre :

    1/- l'appel d'une fonction avec les structures temporaires pre allouées en parametre.
    2/- l'appel de la meme fonction avec ces strucures en local.
    3/- l'appel de cette fonction avec ces structures en local static

    plusieurs fois dans une boucle


  5. #5
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Il n'y a pas de reponse ca depend trop de ta machine, de ton OS, de ton compilateur et de l'allocat6eur memoire que tu utilises.

    a l'epoque quelqu'un m'avait donner un document traitant des performances je vais voir si je le retrouve.

  6. #6
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Voici le document :

    http://www.open-std.org/jtc1/sc22/wg...2004/n1666.pdf


    C'etait JolyLoic qui me l'avait donner sur ce forum, peut etre a -t'il dans sa manche d'autres documents sur le sujet.

  7. #7
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    Cool

    Merci

  8. #8
    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
    Citation Envoyé par xxiemeciel
    C'etait JolyLoic qui me l'avait donner sur ce forum, peut etre a -t'il dans sa manche d'autres documents sur le sujet.
    En ce moment, j'ai un T-Shirt, donc il n'y a pas de place pour quoi que ce soit d'autre dans ma manche
    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.

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

Discussions similaires

  1. Optimisation de votre SGBDR et de vos requêtes...
    Par SQLpro dans le forum Langage SQL
    Réponses: 35
    Dernier message: 11/01/2013, 11h49
  2. Coder en PHP, entre optimisation, compression et lisibilité
    Par Benjamin Delespierre dans le forum Langage
    Réponses: 20
    Dernier message: 16/12/2012, 22h51
  3. [langage]Problème de temps de lecture, optimisation
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2003, 08h47
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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