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 :

Temps d´exécution d´un programme


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Par défaut Temps d´exécution d´un programme
    salut,

    je programme un petit logiciel qui effectue une classification
    de certains fichiers. J´aimerai qu´à la fin le logiciel me
    donne le temps qu´il a mis pour effectuer la classification....
    Quelqu´un pourrait avoir une idée sur la chose?


    S. Bugsy

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Bonjour,
    Tu peux utiliser time.clock()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import time
     
    t = time.clock()
     
    #effectue la classification....
     
    duree = time.clock() - t

  3. #3
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Si c'est pour des tests, tu seras sans doute intéressé par profile (et plus spécialement cProfile).

    Aussi, si tu es sous un système *nix, tu peux utiliser la commande time
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ~ $ time sleep 10
     
    real	0m10.001s
    user	0m0.000s
    sys	0m0.000s

  4. #4
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Par défaut
    Citation Envoyé par nyko77 Voir le message
    Bonjour,
    Tu peux utiliser time.clock()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import time
     
    t = time.clock()
     
    #effectue la classification....
     
    duree = time.clock() - t
    mer6 pour la suggestion!!!
    j´ai testé cette méthose sur deux ordinateurs différents et j´ai constaté que le temps d´exécution de ma classification varie selon l´ordinateur. A quoi cela peut-il être dû?

  5. #5
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Si les deux pc n'ont pas précisément le même matériel, la différence est là.
    Et même si c'était le cas, il n'y a aucune assurance que ça prendrait précisément le même temps.

    Sans compter que ça dépend aussi de la charge mémoire, des paramètres de Python etc etc etc...

  6. #6
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Par défaut
    Citation Envoyé par Antoine_935 Voir le message
    Si les deux pc n'ont pas précisément le même matériel, la différence est là.
    Et même si c'était le cas, il n'y a aucune assurance que ça prendrait précisément le même temps.

    Sans compter que ça dépend aussi de la charge mémoire, des paramètres de Python etc etc etc...
    Mer6 Antoine_965!!!
    Mais existe-il des méthodes pour améliorer ce temps d´exécution?

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    oui, bien sûr il existe plein de méthodes pour diminuer les temps de restitutions.

    avant toute chose il faut savoir où est ton goulet d'étranglement. là je te suggère de regarder du côté des modules profile ou Cprofile dans la librairie standard de python.

    une fois que tu as trouvé les goulets, tu peux essayer de modifier très localement la fonction incriminée si jamais tu as utilisé des fonctionnalités très gourmandes de python (méthode index des listes par exemple , ou encore range qu'on peut remplacer par xrange...)

    si la lenteur vient d'un choix d'architecture dépassant le cadre de la fonction, c'est un peu plus long comme travail, forcément.

    et puis en dernier recours tu as la possibilité de construire une extension dans un autre langage en utilisant les vastes possibilités offertes par python pour de l'interopérabilité de langage, ou utiliser pyrex/cython, passer par l'API C de Python... enfin bref, c'est pas le choix qui manque

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/04/2008, 13h17
  2. comment executer une commande a partir d’un programme
    Par ryoussef19 dans le forum Visual C++
    Réponses: 2
    Dernier message: 27/08/2007, 09h28
  3. Réponses: 1
    Dernier message: 28/02/2007, 09h15
  4. Réponses: 14
    Dernier message: 25/01/2007, 11h17
  5. Comment Avoir un exécutable dun programme JAVA
    Par charafax dans le forum JDBC
    Réponses: 1
    Dernier message: 11/01/2007, 19h21

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