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

Pascal Discussion :

Comment chronométrer une fonction


Sujet :

Pascal

  1. #1
    323
    323 est déconnecté
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comment chronométrer une fonction
    Bonsoir,

    je réalise un petit prog pour comparer (en testant et chronométrant) les différentes méthodes de tri dans un tableau. Chaque méthode est sous la forme d'une fonction.

    Comment est-ce que je peux chronométrer le temps que chacune d'elle met ?

    Merci d'avance

    EZ
    vive le waterzooi!

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Salut !

    Tout va dépendre de la précision dont tu as besoin. Si tu veux une comparaison "grossière", regarder l'horloge système sera amplement suffisant. Elle est mise à jour 18.2 fois par seconde. Pour s'en servir, il faut déclarer une variable de type Longint placée à l'adresse $0040:$006C (avec absolute), comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      SysClock: Longint absolute $0040:$006C;
      C1, C2: Longint;
     
    begin
    ...
    C1 := SysClock;
    ...
    C2 := SysClock;
    ...
    WriteLn('Temps écoulé : ' C2 - C1);
    end.
    Attention toutefois au passage fatidique à minuit ! En effet, l'horloge système comptabilise le nombre de ticks depuis minuit. Donc tu risques d'avoir des temps négatifs si tu débutes ton prog avant minuit, et qu'il se termine après.

    Si la précision nécessaire est plus importante, tu peux te servir de l'unité Dos et de la procédure GetTime, qui te donnera des centièmes de seconde.

    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
     
    uses
      Dos;
     
    var
      H, M, S, S100: Word;
      C1, C2: Longint;
     
    begin
    ...
    GetTime(H, M, S, S100);
    C1 := H * 60 * 6000 + M * 6000 + S * 100 + S100;
    ...
    GetTime(H, M, S, S100);
    C2 := H * 60 * 6000 + M * 6000 + S * 100 + S100;
    ...
    WriteLn('Temps écoulé : ', C2 - C1);
    Il existe une méthode encore plus précise. Si elle t'intéresse, dis-le. Elle nécessite un peu plus de pratique et de connaissances peut-être pour la comprendre.

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    323
    323 est déconnecté
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ces deux premières méthodes suffiront amplement.

    merci pour ton aide si rapide et efficace!

    EZ
    vive le waterzooi!

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai explorer les deux méthode présentée ci dessus mais j'aurais besoins de pouvoir gérer du temps à la miliseconde près (ou en du cas > au centième de seconde).
    Merci

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

Discussions similaires

  1. Comment rappeler une fonction dans une liste déroulante
    Par strogos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2005, 23h54
  2. [VB.Net] Comment implémenter une fonction BitWise ?
    Par graphicsxp dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/04/2005, 15h52
  3. Réponses: 8
    Dernier message: 20/12/2004, 15h14
  4. Comment lancer une fonction
    Par Elois dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/04/2004, 19h10
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

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