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

VB 6 et antérieur Discussion :

Temps de calcul d'un algo


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut Temps de calcul d'un algo
    Bonsoir,

    Pour certains programmes, gourmands en temps processeur, il peut être necessaire d'optimiser au maximum la vitesse des algorithmes. Or, parfois un algorithme un peu plus rapide qu'un autre semble moins rapide, en particulier à cause de windows qui fait du multitache, et qui alloue au programme les performances du pc de façon plus ou moins aléatoire.

    Je voulais donc savoir si il existe en VB une possibilité de savoir exactement quel temps processeur à algo met à s'executer. (impulsions d'horloge processeur par exemple). Je doute que ce soit possible, mais je demande quand même ...

    PS : je connais déjà les méthodes classiques (mais peu précises pour de courtes périodes) avec GetTickCount ou Timer.

    Voilà, merci

  2. #2
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    Pour le calcul, je sais qu'il existe une API plus précise que GetTickCount, mais j'ai oublié son nom, je crois qu'il en parle dans un des tutoriel excel.

    Or, parfois un algorithme un peu plus rapide qu'un autre semble moins rapide, en particulier à cause de windows qui fait du multitache, et qui alloue au programme les performances du pc de façon plus ou moins aléatoire.
    Mais sinon, la dessus je suis surpris, tout dépend de ce que tu utilises mets pour voir si un algo est plus rapide théoriquement, il doit l'être aussi réellement.

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    C'est l'occupation des ressources ou la durée d'exécution d'une procédure qui t'intéresse ?

  4. #4
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Salut,

    Oui, c'est la durée d'execution d'une procédure qui m'interesse.

    Tan : avec getTickCount, un même algo s'executant en environ 1 minute par exemple, est déterminé avec plusieurs secondes de différence selon les fois avec mon PC (avec les mêmes valeurs de variables). Peut être que quand le processeur chauffe, sa vitesse varie ...

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    L'intérêt d'une telle démarche est de segmenter l'exécution afin de connaître les procédures les plus gourmandes -
    d'autre part, il importe d'exécuter le test dans le même environnement ; il est donc préférable
    qu'il n'y ait pas d'autres exécutables qui tournent en même temps notamment s'il y a autant de variations entre chaque test.

  6. #6
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Oui,

    J'execute toujours le même programme sur la même machine, et je ne laisse pas allumé des programmes (sauf explorer et tous les processus nécessaires à Windows).

    Anecdote : une fois je me suis amusé à faire un programme assembleur qui envoyait des données de façon constante sur le port parallèle, et sur ce port parallèle il y avait un piezzo (haut parleur). Le son n'était pas du tout constant.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    les temps d'exe ne sont pas constant pour un meme algo, c depuis la nuit de temps et j'ai renoncé à savoir le pourquoi du comment

    par contre d'un algo à l'autre la moyenne des temps d'éxé peut varier très sensiblement

    pour vérification, je me suis et me fait des programmes très courts du coeur de l'algo et je le fais éxécuter en boucle 10, 100, 1000 ... fois

    ensuite, je choisis

    une chose est sure, les temps d'exe sont quasi toujours différents

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    ayant travaillé sous VAX/VMS en muliti postes, j'ai pu constater qu'une appli perdait de la vitesse dans le temps afin de laisser la "priorité" aux nouveaux arrivants, il est donc plus performant de "saucissoner", de stopper un traitement et de le reprendre

    également, il vaut mieux imbriquer plusieurs boucles que d'en réaliser une très longue
    de stocker des fichiers dans plusieurs répertoires plutot que dans un seul très gros
    ...

    etc

    ça pédale super vite avec des petits nombres

Discussions similaires

  1. peut-on minimiser le temps de calcul d'un algo
    Par khadi8 dans le forum Débuter
    Réponses: 10
    Dernier message: 05/01/2013, 13h26
  2. temps de calcul RSA
    Par othland dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 13/03/2006, 11h16
  3. temps de calcul sius VC++ !!
    Par Axiome dans le forum MFC
    Réponses: 16
    Dernier message: 13/12/2005, 09h57
  4. Temps de calcul avec deux écrans
    Par Shaga dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/11/2005, 09h24
  5. temps de calculs extremement long !!
    Par salseropom dans le forum C++
    Réponses: 9
    Dernier message: 19/01/2005, 20h12

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