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 :

[C++] Calcul du temps d'ex�cution


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Par d�faut [C++] Calcul du temps d'ex�cution
    Bonjour � tous,

    je travaille sur un projet pour un de mes cours. Nous avons tent� d'optimiser le programme. Nous aimerions comparer le temps d'ex�cution de la version finale optimis�e � celui de la premi�re version.

    Y a-t-il un moyen simple de faire cela?

    D'avance, je vous remercie.

  2. #2
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Sous Linux, il y a time - on lance le prog avec time ./prog

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Par d�faut
    J'suis sous Windows mais j'utilise Cygwin.

    Ca fonctionne !

    Que veulent dire pr�cis�ment les 3 valeurs retourn�es par time ?

  4. #4
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Ce sont les diff�rents temps d'ex�cution, utilisateur, system, ...
    donne cette page : http://linux.about.com/library/cmd/blcmdl1_time.htm

  5. #5
    Membre averti
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2002
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 31
    Par d�faut
    Salut,

    Perso, j'utilise ce petit bout de code que j'ai trouv� (si pour mesure de temps > � la sec)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void duree(time_t _begin, time_t _end) 
    {
      double temp; 
      double hours=0, min=0, sec=0; 
      double dureeCalc = difftime(_end, _begin);
      temp = modf(dureeCalc/3600., &hours); 
      temp = modf(temp*60., &min); 
      temp = modf(temp*60., &sec); 
      cout<<"Duree du calcul : "<<hours<<" h "<<min<<" min "<<sec<<" sec"<<endl; 
    }
    en l'appelant comme suit sans oublier la librairie:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <time.h>
     
    main(......)
    {
    time_t begin=time(NULL);
     
    ...programme...
     
    time_t end=time(NULL); 
    duree(begin,end); 
    }
    Voil� bonne continuation

  6. #6
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Faut juste laisser la b�cane sans rien faire pour ne pas fausser les r�sultats

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    27
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Par d�faut
    Bonjour. Une r�ponse (qui fonctionne) inspir�e de vos r�ponses (que je n'ai pas r�ussi � faire tourner... il faut dire que je d�bute ;-) !!) :

    Dans le .cpp
    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
    19
    20
    21
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "header.h"
    #include <time.h>
    #include <math.h>
     
    int main(){
    //========================================= DEBUT
        time_t begin , end;
        time (&begin);
     
    ................ corps du programme .............
     
    //========================================= FIN
            time(&end);
    //========================================= CALCUL DUREE
            duree(begin,end);
        }
        return 0;
    }
    Dans le header :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    void duree(time_t _begin, time_t _end);
    Dans le fichiers des fonctions :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void duree(time_t time1, time_t time2){
        int hours = 0, min = 0, sec = 0;
        double dureeCalc;
        dureeCalc = difftime (time2,time1);
        float f2h = dureeCalc / 3600;
        hours = floor(f2h);
        int reste = dureeCalc - (hours * 3600);
        float f2m = dureeCalc / 60;
        min = floor(f2m);
        sec = dureeCalc - (min * 60);
        printf("Duree du calcul : %d h %d min %d sec",hours,min,sec);
    }
    Voila, je sais que le post est vieux (2006 !!!), mais c'est tjs interessant de mettre sur le Net une solution pour les newbies comme moi !!

    Bonne journ�e, et � bient�t

    KQMan

  8. #8
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Salut,

    Solution � l'image du thread : p�rim�e

    En effet, aujourd'hui, avec C++11, cela se fait beaucoup plus facilement (cf chrono) :
    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
    #include <iostream>
    #include <chrono>
    #include <cmath>
     
    int main()
    {
        std::chrono::system_clock::time_point start = std::chrono::system_clock::now();
     
        for ( long i = 0; i < 10000000; ++i )
        {
            std::sqrt( 123.456L ); // burn some time
        }
     
        std::chrono::duration<double> sec = std::chrono::system_clock::now() - start;
        std::cout << "took " << sec.count() << " seconds\n";
        return 0;
    }
    Ou Boost.chrono lorsque std::chrono n'est pas dispo. (l'exemple ci dessus vient directement de la doc boost en changeant juste vers std)

Discussions similaires

  1. R�ponses: 5
    Dernier message: 07/04/2007, 01h49
  2. Calculer le temps d'ex�cution d'une requ�te
    Par BRAUKRIS dans le forum Servlets/JSP
    R�ponses: 1
    Dernier message: 16/03/2007, 12h59
  3. Calculer le temps d'ex�cution d'un script
    Par pomgnon dans le forum C
    R�ponses: 2
    Dernier message: 28/12/2006, 15h49
  4. R�ponses: 3
    Dernier message: 11/03/2006, 15h35
  5. [C#] Calcul du temps d'ex�cution.
    Par lozzko dans le forum Windows Forms
    R�ponses: 4
    Dernier message: 12/06/2005, 16h12

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