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

Python Discussion :

Mésurer le temps d'execution d'un programme en python


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Mésurer le temps d'execution d'un programme en python
    Bonjour à tous

    J'ai codé un programme en python, et afin de mésurer le temps d'execution de mon programme, j'ai encadré mon programme par les instructions suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    tmps1=time.clock()
     
    # code 
    # code 
    # code 
    # code 
    # code 
     
    tmps2=time.clock()
    print "Temps d'execution = %d\n" %(tmps2-tmps1)
    le problème c'est que lorsque mon programme dure longtemps dans le temps, genre 4 heures, il me donne une fausse durée.
    Je ne sais pas d'o`u vient le problème.

    Dans l'attente de vos réponses

    Je vous remercie d'avance

    mamicha

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Citation Envoyé par mamicha Voir le message
    le problème c'est que lorsque mon programme dure longtemps dans le temps, genre 4 heures, il me donne une fausse durée.
    Qu'est ce qui vous fait dire que cette durée est fausse? Sur quel OS travaillez vous? Quelle version de Python?

    - W

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Car le temps affiché est en seconde il était correcte au début en lancant mon programme sur des entrées de petite taille mais pour de grande entrées là o`u ça dure des heures je trouve que le temps affiché en seconde est inférieur à celui qui a duré une heure et des fois il me l'affiche avec le sign - genre la durée est -1600 par exemple.

    Je suis sous ubuntu et la version de python que j'utilise est 2.7

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Sur Linux, time.clock mesure le temps CPU consommé (et non le temps passé).
    Sinon remplacez déjà le %d par un %f.

    - W

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    et comment faire pour mésurer le temps passé ?
    y a t'il une fonction qui le fait ?

    Pouvez vous me dire pourquoi je remplace le %d par %f

    Merci

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Citation Envoyé par mamicha Voir le message
    et comment faire pour mésurer le temps passé ?
    y a t'il une fonction qui le fait ?
    Pourquoi ne pas consulter la documentation du module time? Si vous vous lancez dans des codes compliqués, il faudra de toutes façons vous familiariser avec la doc.

    Citation Envoyé par mamicha Voir le message
    Pouvez vous me dire pourquoi je remplace le %d par %f
    Parce que "d" c'est pour des entiers alors que vous affichez un float.

    - W

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 54
    Points : 98
    Points
    98
    Par défaut re
    Citation Envoyé par mamicha Voir le message
    Bonjour à tous

    J'ai codé un programme en python, et afin de mésurer le temps d'execution de mon programme, j'ai encadré mon programme par les instructions suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    tmps1=time.clock()
     
    # code 
    # code 
    # code 
    # code 
    # code 
     
    tmps2=time.clock()
    print "Temps d'execution = %d\n" %(tmps2-tmps1)
    le problème c'est que lorsque mon programme dure longtemps dans le temps, genre 4 heures, il me donne une fausse durée.
    Je ne sais pas d'o`u vient le problème.

    Dans l'attente de vos réponses

    Je vous remercie d'avance

    mamicha
    peut-etre en essayant de taper

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmps2=time.time()-tmps1
    des fois le problème vient de là

    des fois seulement ...

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Pourquoi ne pas consulter la documentation du module time? Si vous vous lancez dans des codes compliqués, il faudra de toutes façons vous familiariser avec la doc.

    - W
    J'ai consulté la documentation et j'ai trouvé qu'il existe deux fonction qui servent à montrer le temps : clock et time mais je n'ai pas compris la différence alorsque j'ai lu pas mal de documents, peut être parceque je ne connais pas beaucoup de concept en informatique.... je ne sais pas

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par mamicha Voir le message
    J'ai consulté la documentation et j'ai trouvé qu'il existe deux fonction qui servent à montrer le temps : clock et time mais je n'ai pas compris la différence alors que j'ai lu pas mal de documents, peut être parce que je ne connais pas beaucoup de concept en informatique.... je ne sais pas
    La programmation n'est pas un concept mais une pratique.
    Si vous n'essayez pour voir si vous avez compris "avant" de l'utiliser dans vos codes, votre construction risque de s'effondrer telle un château de cartes. Et dans le cas particulier, c'est pas si compliqué de lancer la console Python et "regarder" ce que çà remonte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> import time
    >>> tc = time.clock()
    >>> tt = time.time()
    >>> time.clock() - tc; time.time() - tt
    0.0035479999999999956
    24.396926403045654
    >>> time.clock() - tc; time.time() - tt
    0.0037639999999999965
    28.320460081100464
    >>> time.clock() - tc; time.time() - tt
    0.004000999999999998
    31.203699350357056
    >>>
    - W

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par bosskev62 Voir le message
    peut-etre en essayant de taper

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmps2=time.time()-tmps1
    des fois le problème vient de là

    des fois seulement ...
    Bonjour

    Je vous remercie beaucoup
    hier j'ai appliqué ce que vous m'avez conseillé de faire et j'ai testé et trouvé à la fin le résultat que je voulais avoir == Le temps d'execution du code

    Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import time 
    tmps1=time.time()
    # Code
    # Code
    # Code
    tmps2=time.time()-tmps1
    print "Temps d'execution = %f" %tmps2
    Merci

  11. #11
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> import time
    >>> tc = time.clock()
    >>> tt = time.time()
    >>> time.clock() - tc; time.time() - tt
    0.0035479999999999956
    24.396926403045654
    >>> time.clock() - tc; time.time() - tt
    0.0037639999999999965
    28.320460081100464
    >>> time.clock() - tc; time.time() - tt
    0.004000999999999998
    31.203699350357056
    >>>
    - W
    Bonjour

    Pouvez vous, suivant ces résultat, me dire ce qui se passe exactement, car je comprends qu'il y a une différence mais je ne comprends pas pourquoi clock ne change pas alorsque la première valeur est fixé et la deuxième change dans le temps à chaque fois il y a un nouveau time.clock?

    Je vous informe qu'après avoir utilisé time.time() , le temps affiché est bien la durée d'execution

    Merci beaucoup pour l'aide

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Citation Envoyé par mamicha Voir le message
    Pouvez vous, suivant ces résultat, me dire ce qui se passe exactement, car je comprends qu'il y a une différence mais je ne comprends pas pourquoi clock ne change pas alorsque la première valeur est fixé et la deuxième change dans le temps à chaque fois il y a un nouveau time.clock?
    Pour comprendre, il vous suffit de relire la première réponse que je vous ai fait ou mieux la documentation de ces fonctions.

    Citation Envoyé par mamicha Voir le message
    Je vous informe qu'après avoir utilisé time.time() , le temps affiché est bien la durée d'execution
    J'essaie juste de vous motiver pour être plus confortable dans la lecture de la documentation. Dans des cas aussi simples, c'est un bon entraînement. Et un peu d'expérience vous éviterait d'attendre une réponse à des questions aussi basiques.
    A vous de voir.

    - W

  13. #13
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Citation Envoyé par mamicha Voir le message
    Bonjour

    Pouvez vous, suivant ces résultat, me dire ce qui se passe exactement, car je comprends qu'il y a une différence mais je ne comprends pas pourquoi clock ne change pas alorsque la première valeur est fixé et la deuxième change dans le temps à chaque fois il y a un nouveau time.clock?

    Je vous informe qu'après avoir utilisé time.time() , le temps affiché est bien la durée d'execution

    Merci beaucoup pour l'aide
    C'est quand même assez simple de voir que les lignes ont été entrées les unes après les autres...

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/07/2007, 18h38
  2. Temps D'execution D'un Programme
    Par hamska2 dans le forum C
    Réponses: 14
    Dernier message: 09/05/2007, 18h14
  3. temps d'execution d'un programme multithread
    Par La taupe dans le forum C
    Réponses: 2
    Dernier message: 10/01/2007, 17h44
  4. Réponses: 5
    Dernier message: 19/06/2006, 22h54
  5. temps d'execution d'un programme
    Par Invité(e) dans le forum C
    Réponses: 8
    Dernier message: 17/05/2006, 13h12

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