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

MinGW Discussion :

Lenteur de gdb sur libération de std::vector


Sujet :

MinGW

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Lenteur de gdb sur libération de std::vector
    Bonjour,

    Je développe en C++ sous Windows 7 64 bits avec code::block et MinGw. Je constate une grande lenteur lorsque je suis en mode debug lorsque je libère un grand nombre de std::vector. L'exemple le plus minimaliste étant le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int main()
    {
        vector<vector<unsigned char> > vect;
        vect.resize(300000);
        for (int i = 0 ; i < 300000 ; i++){
            vect[i].resize(8);
        }
        vect.clear();  // Les vecteurs contenus dans vect sont libérés, grande lenteur ! (40 secondes!)
        cout << "Hello world!" << endl;
        return 0;
    }
    Lorsque je lance le même exécutable, en dehors du mode debug, l'exécution est instantané.

    Le même comportement est constaté, quelque soit la version de MinGw (32 ou 64 bits), basé sur GCC 4.1 ou 4.6.1.

    Durant cette lenteur, gdb ne consomme pas de processeur, seul mon exécutable le fait.

    D'où vient ce comportement? Pourquoi l'ai-je lorsque je monitore l'exécutable avec gdb et pas lorsque je le lance directement (même exécutable)? Je suis un peu désemparé car à cause de cette très lente libération de vecteurs de vecteurs, je prends 5H30 à arriver à un point d'arrêt, pour trouver la source d'un bug à corriger rapidement, très rapidement...

    Cordialement,
    Benoît (entre et )

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    Salut,
    Par hasard as tu essayer l'utilisation de gdb en ligne de commande pour voir si cela provient de l'IDE ou si il s'agit d'un problème du au debug?

Discussions similaires

  1. Plantage sur deletion de std::vector
    Par uriotcea dans le forum C++
    Réponses: 8
    Dernier message: 20/02/2012, 21h09
  2. tri sur std::vector<std::pair<int, float> >
    Par b4u dans le forum SL & STL
    Réponses: 15
    Dernier message: 01/10/2006, 09h19
  3. 3 précisions sur l'utilisation des "std::vector"
    Par Invité dans le forum SL & STL
    Réponses: 9
    Dernier message: 10/01/2006, 00h42
  4. Libération de pointeurs dans un std::vector
    Par G dans le forum SL & STL
    Réponses: 17
    Dernier message: 06/04/2005, 22h37
  5. std::sort() sur std::vector()
    Par tut dans le forum SL & STL
    Réponses: 20
    Dernier message: 05/01/2005, 19h15

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