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 :

Temps d'execution en nano-secondes ( PC rapide )


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut Temps d'execution en nano-secondes ( PC rapide )
    Bonjour à tous ,

    voilà , j'ai eu le livre "Programmation 486 et Pentium" de Sybex où on essaie d'optimiser des programmes C ou ASM , mais j'ai un soucis avec leur timer , d'ailleur , il ne fonctionne pas sur un systéme protégé comme Windows 2000/XP car il tente d'accéder à une adresse et de modifier son contenu , donc j'ai eu l'idée d'utiliser clock () , mais elle renvoi le temps en microsecondes , ce qui n'offre pas une très grande précision car vu que j'ai un P4 à 2,8 Ghz , la soustraction du temps avant la portion à mésurer du temps aprés la portion à mésurer , j'obtiens parfois 0 , donc peut quelqu'un me dire s'il existe une fonction qui permet d'obtenir le temps en nanosecondes , et si possible , une qui permet de le donner en cycles ?

    Merci d'avance pour toute réponse .
    Forum Programmation d'OS - Tutoriel pour créer un petit noyau 32 bits .

    ( le développement de littlefoot86 est abandonné ... )

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Sous Win32, la fonction de temps la plus précise est QueryPerformanceCounter().
    Pour les unixoïdes, aucune idée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    N'y a-t-il pas de fonction standard C ?
    Forum Programmation d'OS - Tutoriel pour créer un petit noyau 32 bits .

    ( le développement de littlefoot86 est abandonné ... )

  4. #4
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    C'est trop proche du systeme pour que ça soit standard ,)

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Bon je vais utiliser le timer sur http://high-res-timers.sourceforge.net/ vu qu'il est portable .
    Forum Programmation d'OS - Tutoriel pour créer un petit noyau 32 bits .

    ( le développement de littlefoot86 est abandonné ... )

  6. #6
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par bouazza92
    N'y a-t-il pas de fonction standard C ?
    Non, c'est systeme dependant. Sous Linux, on utilise gettimeofday() pour une precision de ls micro-seconde. Remarque que QueryPerformanceCounter() et gettimeofday() ne donneront jamais une precision de l'ordre de la nano-seconde (le temps d'execution de la fonction est superieur et varie -- sur certains systemes, QueryPerformanceCounter() prend jusque 1000 cycles CPU !). Il faut des cartes materielles pour cela.

Discussions similaires

  1. limit et temps d'execution avec oracle et PHP
    Par dor_boucle dans le forum Oracle
    Réponses: 20
    Dernier message: 10/12/2005, 14h31
  2. [Math][Temps d'execution]Exprimée en secondes?
    Par Regis.C dans le forum Général Java
    Réponses: 16
    Dernier message: 09/11/2005, 23h05
  3. Temps d'execution d'une requête
    Par Maglight dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/01/2005, 08h38
  4. [VB.NET] Temps d'éxécution d'une page...
    Par Webman dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/06/2004, 12h20
  5. Connaitre le temps d'execution d'un pgm ?
    Par yacinechaouche dans le forum C
    Réponses: 7
    Dernier message: 27/01/2003, 20h57

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