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

Gestion mémoire et vitesse de calculs


Sujet :

Langage C++

  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut Gestion mémoire et vitesse de calculs
    Bonjour,

    je suis en train de re-créer un programme qui doit faire beaucoup de calcul mathématique. (Le premier programme était beaucoup trop lent...)
    On teste pour cela différentes valeurs de départ, quelques centaines de milliers en fait.
    J'avais pensé utiliser la STL pour avoir une meilleur gestion de la mémoire mais je ne sais pas si c'est la meilleur possibilité.

    Il faut que j'évite les allocations de mémoire et je ne vois pas trop comment m'en sortir. Sachant qu'à chaque nouvelle étape de calcul je dois generer (allocation) de nouvelles données mais si je tombe dans une impasse je dois revenir en arrière (suppression des données).
    La mémoire nécessaire pour faire tourner le programme n'est pas très grande normalement donc je pourrais utiliser de la mémoire pré-alloué qui sera immédiatement disponible : Un buffer...
    Comment bien gérer ce buffer ? avez-vous des conseils à me donner ?
    Un exemple ?


    Le temps de calculs est un paramètre important. L'objectif de la nouvelle version est de considérablement réduire le temps de calcul.

    Je vous remercie d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si le programme précédent fonctionne, et que son seul défaut est d'être lent, il faut commencer par comprendre ce qui le ralentit.

    Utilises un profileur pour savoir où le temps de calcul est passé, et pars de ses résultats. Il est tout à fait possible que le problème ne vienne pas d'où tu penses. Si tu arrives à t'en sortir sans tout réécrire, tu vas gagner un temps précieux (surtout en mise au point). Si à la fin tu dois de toutes façons réécrire, les informations de profiling t'aideront à définir l'architecture de ta "v2".

    Francois

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Le conseil de François me semble quand même de bon sens pour commencer une optimisation.
    Si d'aventure, tu avais un problème à cause des allocations, alors intéresse toi aux allocateurs qu'acceptent les conteneurs et qui peuvent t'aider à avoir des gains sur ce point.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut
    Ok. Pour commencer, je vais suivre votre conseil et je vais éplucher le fichier du profileur.

Discussions similaires

  1. Thread POSIX et gestion mémoire
    Par pier* dans le forum POSIX
    Réponses: 1
    Dernier message: 07/07/2006, 21h36
  2. TAO, Value types et gestion mémoire
    Par TiChabin972 dans le forum CORBA
    Réponses: 1
    Dernier message: 25/04/2006, 20h55
  3. [D7] Tableau dynamique et Gestion mémoire
    Par Cl@udius dans le forum Langage
    Réponses: 7
    Dernier message: 13/03/2006, 15h16
  4. [Gestion mémoire] SetLength sur TDoubleDynArray
    Par MD Software dans le forum Langage
    Réponses: 14
    Dernier message: 24/04/2005, 21h11
  5. Gestion mémoire des Meshes (LPD3DXMESH)
    Par [Hideki] dans le forum DirectX
    Réponses: 1
    Dernier message: 08/07/2003, 20h34

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