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

wxWidgets Discussion :

Lenteur


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Lenteur
    Bonjour tout le monde,
    je travaille actuellement sur un outil assez gourmand en temps de calcul.
    jusqu'à peu seule une version console de mon outil existait, et j'ai créé une interface avec wxwidgets afin de la rendre plus pratique pour l'utilisateur.
    l'interface est très simple quelques bouton et des file et dir picker, ainsi qu'une seule de texte (peu utilisé) et malgré la légèreté de cette interface et le fait que les traitements sont les mêmes (les mêmes class C++ sont utilisés et de la même façon), les temps de traitement sont beaucoup plus long (2 à 4 fois plus)

    je cherche donc à savoir pourquoi wxWidget augmente autant mes traitements? les objets standart du C++ serait surchargé et plus long?

    merci de me dire si quelqu'un aurait une piste.

    (sinon en annexe je n'arrive pas à redirigé mes sortie standart "cout" dans un wxTextCtrl même après avoir modifié le flag wxUSE_STD_IOSTREAM et recompiler wxWidget)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par kreeks Voir le message
    les temps de traitement sont beaucoup plus long (2 à 4 fois plus)
    Il n'y a aucune raison. Le temps de calcul ne varie pas si on invoque les routines de calcul par une IHM. Sauf bien sûr si l'IHM est mal programmée et pompe du temps CPU.

    Quel compilateur et quel IDE utilisez-vous ?

    Si vous êtes sous Visual C++, vérifiez bien que votre programme console n'est pas compilé en "release" et que votre programme IHM n'est pas en "Debug". wxWidgets utilise en debug les facilités de Visual C++ permettant de détecter les fuites de mémoire, débordement de tableau, etc...
    Ce mode debug ralentit considérablement l'exécution, parfois d'un facteur 10.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par AlexisA Voir le message
    Il n'y a aucune raison. Le temps de calcul ne varie pas si on invoque les routines de calcul par une IHM. Sauf bien sûr si l'IHM est mal programmée et pompe du temps CPU.

    Quel compilateur et quel IDE utilisez-vous ?

    Si vous êtes sous Visual C++, vérifiez bien que votre programme console n'est pas compilé en "release" et que votre programme IHM n'est pas en "Debug". wxWidgets utilise en debug les facilités de Visual C++ permettant de détecter les fuites de mémoire, débordement de tableau, etc...
    Ce mode debug ralentit considérablement l'exécution, parfois d'un facteur 10.
    environnement: windows (mais avec version linux prévu) IDE : eclipse/CDT & compilateur : g++
    Effectivement les options de compilation été en cause, le paramètre d'optimisation n'était pas au même niveau, après avoir recompiler avec l'option -O3 au lieu de -O0 j'ai divisé par 2 le temps de traitement.

    Mais ça n'ai donc pas la seule raison, car avant optimisation à la compil les traitement étaient en moyenne 4 fois plus long, désormais ce n'est plus que 2, mais ce n'est pas rien et les traitement étant les mêmes => ce n'est pas compréhensible.

    je ne pense pas que l'interface IHM sauf en cause, elle est tellement basique qu'elle peut être difficilement gourmande, en plus les graphiques d'utilisation processeur sont très similaire entre la version console et la version graphique => je comprends pas trop.

    en tout cas merci pour ta réponse

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par kreeks Voir le message
    Effectivement les options de compilation été en cause, le paramètre d'optimisation n'était pas au même niveau, après avoir recompiler avec l'option -O3 au lieu de -O0 j'ai divisé par 2 le temps de traitement.
    Bon, j'ai contribué à faire avancer les choses, c'est déjà ça !

    Citation Envoyé par kreeks Voir le message
    et les traitement étant les mêmes => ce n'est pas compréhensible.
    Eventuellement, poste ton code source sur le forum (en remplaçant les calculs par des fonctions bouchons si c'est confidentiel) pour examen.

  5. #5
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    As-tu essayé de diviser ton code en 2 threads : un pour tout ce qui est IHM et accès lent (fichier, réseaux, cartes...) et un pour les calculs purs. Il est possible que la perte de temps soit liée à des fonctions 'lentes' d'I.H.M., d'envoi de message, etc.

Discussions similaires

  1. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57
  2. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 21h43
  3. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54
  4. [Sybase]probleme de lenteur
    Par MASSAKA dans le forum Sybase
    Réponses: 3
    Dernier message: 19/03/2003, 22h58
  5. Lenteur d'execution de Jbuilder 6
    Par Tsimplice dans le forum JBuilder
    Réponses: 6
    Dernier message: 18/12/2002, 14h41

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