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.NET Discussion :

Compter précisément un intervalle de temps [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut Compter précisément un intervalle de temps
    Bonjour tout le monde,

    Je suis débutante pour Visual Basic et je suis en train de faire un projet qui a besoin d'une fonction " Compter précisément un intervalle de temps". Autrement dire, c'est savoir combien de temps ça prends dans un programme. J'ai regarder le Timer, le timer ne peux pas compter. Et sur le cours de VB de ce site, il a dit qu'il y a des autre méthodes pour le faire.

    Si vous avez une idée, pourriez-vous me dire ?????????

    Merci beacoup !

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Quelle est ta définition de "précisement" ?

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    En début de ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Datetime debut = Datetime.Now;
    En fin de ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Datetime fin = Datetime.Now;
     
    Timespan duree = fin - debut;

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bonjour

    Il y a la solution exposée par StringBuilder et une autre possibilité en utilisant la class StopWtach, précisément conçue pour ce besoin.

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut
    Merci de votre réponses rapides !!!
    je viens de trouver des codes bien aussi.



    Tout d'abord, ajoutez en entête de votre classe:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports System.Diagnostics
    Ensuite, ajoutez ceci dans la partie de code qui vous intéresse:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ' Instanciation d'un objet StopWatch 
    Dim monStopWatch As New Stopwatch 
     
    ' Déclenchement du "chronomètre" 
    monStopWatch.Start() 
     
    ' /////////////////////////////// 
    ' Placez ici le code que vous voulez évaluer, cela peut être par exemple du code 'brut' ou 
    ' alors l'appel d'un méthode... 
    ' /////////////////////////////// 
     
    ' Arrêt du "chronomètre" 
    monStopWatch.Stop() 
     
    ' Le temps écoulé peut être récupéré très facilement avec un membre de StopWatch, 
    ' de la façon suivante. Le résultat est exprimé en millisecondes 
    Dim tempsExecution As Long 
    tempsExecution = monStopWatch.ElapsedMilliseconds

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Quelle est ta définition de "précisement" ?
    Précisément, c'est exactement quoi

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Les méthodes en question ne sont pas "précises" (dans le sens "temps réel"). En effet, le temps consommé pour créer les variables permettant de chronométrer la fonction, ainsi que leur affectation sont comptées dans le temps d'exécution de la fonction. Il y a donc quelques cycles CPU en trop dans le résultat.

    Pour 99,999% des cas, on s'en cogne. Mais si t'es en train de mesurer les émissions de particules dans un coeur de réacteur nucléaire, bah à quelques pouillèmes près, tu refais un Tchernobyl

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Les méthodes en question ne sont pas "précises" (dans le sens "temps réel"). En effet, le temps consommé pour créer les variables permettant de chronométrer la fonction, ainsi que leur affectation sont comptées dans le temps d'exécution de la fonction. Il y a donc quelques cycles CPU en trop dans le résultat.

    Pour 99,999% des cas, on s'en cogne. Mais si t'es en train de mesurer les émissions de particules dans un coeur de réacteur nucléaire, bah à quelques pouillèmes près, tu refais un Tchernobyl
    Haha, je ne travaille pas sur un projet de nucléaire, donc jamais de Tchernobyl..
    merci de votre réponse. J'ai bien appris des choses avec vous(des autres réponses)
    Merci Bien !

  9. #9
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par xingjing910 Voir le message
    Précisément, c'est exactement quoi
    Bah dans ce cas là, t'as tout faux!
    Ni VB.Net (étant un language managé), ni Windows (dans la version desktop), ni ton materiel (n'ayant je suppose pas d'horloge temps réel) ne sont de bons candidats pour faire du temps réél.
    Donc non ca n'est ni précis ni exact. Tu peux avoir une précision de l'ordre de la milliseconde mais c'est loin d'être précis! Attention aux mots employés, ils ont une définition qui est importante et qui peut changer pas mal de choses...

  10. #10
    Membre chevronné
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Par défaut
    La discussion est marquée comme résolue, mais j'ajoute quand même ma petite brindille à l'édifice : Pour compter le temps, il y a aussi la fonction gettickcount().

    Malheureusement, comme toutes les fonctions citées, cette fonction a la même résolution que le système, de l'ordre de 10 à 16 millisecondes.

    Et pour le débat "précis" et "exact"... Une montre précise est une montre qui affiche 16 décimales après la virgule, une montre exacte est une montre à aiguille tombée en panne : cette dernière donne l'heure exacte deux fois par jour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Compter éléments selon un intervalle de temps donné
    Par Tiviia dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/01/2013, 13h29
  2. Réponses: 5
    Dernier message: 25/03/2008, 17h35
  3. [debutant] Récupérer un intervalle de temps
    Par xlurp dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/10/2004, 15h48
  4. [Interbase 6]Stocker l'intervalle de temps
    Par Andry dans le forum InterBase
    Réponses: 4
    Dernier message: 11/08/2004, 07h48
  5. [Timer]Comment mesurer un intervalle de temps ?
    Par Pill_S dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2004, 17h39

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