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

MFC Discussion :

[MFC] Comment raccourcir le temps d'affichage de mon programme ?


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut [MFC] Comment raccourcir le temps d'affichage de mon programme ?
    Bonjour,

    Je dois afficher environ 1000 lignes (chaines de caractères de type CString) dans une ListBox et cela prend environ 7 secondes.
    J'ai essayé d'afficher 100 lignes et cela prend moins d'une seconde.

    J'ai essayé d'utiliser la méthode InitStorage qui permet de préallouer de la mémoire à la ListBox pour gagner du temps, mais cela ne change rien
    malistbox.InitStorage(1000,100);

    Est-il possible de diminuer le temps d'affichage ?

    Voici le bout de code qui permet d'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      while (i<tab.GetSize())
      {
       this->malistbox.AddString(tab[i]);
       i++;
      }

  2. #2
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    En fait, si les chaines de caractères sont de petites taille, le temps d'affichage est rapide, même pour 1000 lignes (- de 1 seconde)
    Par contre, si les chaines dépassent 500 caractères, le temps devient long.

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    virifie que tu n'as pas l'option sort cochée.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    L'option sort était cochée mais même décochée, l'affichage dure aussi longtemps.
    Bon, mais je pense que les chaines sont trop longues et c'est pour cela que ça met autant de temps, on y peut rien et dans ce cas je vais essayer de m'arranger autrement ...

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    essaye pour voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    malistbox.SetRedraw (FALSE);
      while (i<tab.GetSize())
      {
       this->malistbox.AddString(tab[i]);
       i++;
      }
    malistbox.SetRedraw (TRUE);
    malistbox.Invalidate();

  6. #6
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Non, ça reste toujours aussi long. Mais merci quand même. Mais ne te casse pas la tête, car finalement je n'ai pas besoin d'afficher des chaines de caractères très longues et donc, même si j'affiche 1000 lignes, le temps est considérablement réduit (entre 1 et 2 secondes).
    Bon c'est sûr, j'aurais aimé que ce soit instantané (surtout vu la puissance du PC : un P4), mais c'est déjà pas mal.

Discussions similaires

  1. OnItemLongClickListener trop long. Comment raccourcir ce temps ?
    Par Heavy Metal Hero dans le forum Android
    Réponses: 2
    Dernier message: 14/11/2013, 15h35
  2. Réponses: 6
    Dernier message: 14/07/2011, 22h09
  3. Comment récupérer le temps de chargement d'un programme
    Par tidgirkt dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 27/05/2011, 16h52
  4. Réponses: 3
    Dernier message: 16/08/2007, 03h02
  5. Réponses: 9
    Dernier message: 10/08/2006, 17h33

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