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

C# Discussion :

Mesurer durée tache


Sujet :

C#

  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut Mesurer durée tache
    Bonjour

    Je cheche à optimiser un tache répétitive (transfert de trames via USB)

    pour cela je cherche à mesurer le temps d'execution d'une partie de mon code

    J'ai trouvé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    long debut = System.currentTimeMillis();
    ...
    long tempsTotal = System.currentTimeMillis()-debut;
    sauf que currentTimeMillis on me dit que ca n'existe pas et je ne trouve rien qui en parle sur le msdn...

    j'ai tenté en utilisant
    System.DateTime.Now.Millisecond; mais ca ne gère pas les secondes donc si le début est à 900ms et la fin à 2ms de la seconde suivante c'est mort...
    J'ai donc compliqué en gérant aussi System.DateTime.Now.Second en plus mais j'ai aussi eu droit a un débordement...

    bref, que puis je utiliser de plus pratique pour mesurer une durée en ms ?

    merci par avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par petitours Voir le message
    J'ai trouvé ceci
    long debut = System.currentTimeMillis();
    ...
    long tempsTotal = System.currentTimeMillis()-debut;

    sauf que currentTimeMillis on me dit que ca n'existe pas et je ne trouve rien qui en parle sur le msdn...
    Normal, c'est du Java

    Citation Envoyé par petitours Voir le message
    j'ai tenté en utilisant
    System.DateTime.Now.Millisecond;
    mais ca ne gère pas les secondes donc si le début est à 900ms et la fin à 2ms de la seconde suivante c'est mort...
    J'ai donc compliqué en gérant aussi System.DateTime.Now.Second en plus mais j'ai aussi eu droit a un débordement...
    DateTime.Now n'est pas assez précis ; si c'est pour des opérations qui durent longtemps (disons plus d'une seconde), ça va encore, mais sinon c'est beaucoup trop imprécis.

    Il y a une classe qui sert justement à mesurer précisément la durée d'une opération : Stopwatch.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Stopwatch sw = Stopwatch.StartNew();
     
    // Ton traitement...
     
    sw.Stop();
    Console.WriteLine("Temps écoulé : {0}", sw.Elapsed);
    (la propriété Elapsed est de type TimeSpan)

  3. #3
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    merci beaucoup c'est génial

    avec sw.ElapsedMilliseconds j'ai le resultat dans un format long qui me va particulièrement bien (je stocke 10000 durées pour regarder leurs évolutions)

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Sinon, la librairie Dvp.net permet aussi de faire ça de façon assez simple via des "using" :

    Exemple de code

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

Discussions similaires

  1. [PR-2007] Impossible de changer durée tache
    Par waxman dans le forum Project
    Réponses: 3
    Dernier message: 02/03/2012, 14h51
  2. Bibliothèque de gestion de mesures (durées, monnaies, etc)
    Par Arnaud_03 dans le forum Général Java
    Réponses: 4
    Dernier message: 27/08/2009, 17h04
  3. Déterminer la durée des taches
    Par bilred dans le forum Project
    Réponses: 1
    Dernier message: 11/12/2008, 19h18
  4. Réponses: 3
    Dernier message: 28/02/2007, 18h46
  5. mesurer la durée d'un traitement
    Par ljoly dans le forum Oracle
    Réponses: 7
    Dernier message: 30/08/2006, 11h49

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