Comment mesurer le temps d'exécution avec Python, partie 2

Comment mesurer le temps d'exécution avec Python, partie 2

Le décorateur utilisé dans Decorator pour mesurer le temps d'exécution 1 a renvoyé le temps d'exécution. Pour afficher l'heure d'exécution tout en renvoyant la valeur d'origine de la fonction à décorer, procédez comme suit. Il est sorti sur la sortie standard par impression, mais je pense qu'il est également bon d'utiliser un module de journalisation ou similaire.

Redéfinir le décorateur du temps

def time(func):
    """
Décorateur de débogage
Décorateur qui affiche l'heure effective
    """
    import functools
    import datetime
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        start = datetime.datetime.today()
        print '-------------------------------------------------------------'
        print func
        print '----------------------------------'
        print 'start:', start
        result = func(*args, **kwargs)
        end = datetime.datetime.today()
        print 'end:', end
        print '----------------------------------'
        print 'running:', end - start
        print '-------------------------------------------------------------'
        return result
    return wrapper

exécutez le décorateur de temps

J'ai essayé d'utiliser un nouveau décorateur pour testfunc1 utilisé dans Decorator pour mesurer le temps d'exécution 1.

>>> testfunc1(rangelist)
-------------------------------------------------------------
<function testfunc1 at 0x01c40590>
----------------------------------
start: 2014-03-21 23:21:01.947000
end: 2014-03-21 23:21:02.362000
----------------------------------
running: 0:00:00.415000
-------------------------------------------------------------

L'heure d'exécution était affichée correctement.

Décorateur qui ne fait rien

Si vous ne voulez pas déboguer et qu'il est compliqué de réécrire la définition de la fonction une par une, vous pouvez remplacer le décorateur de temps par un décorateur à ne rien faire. Comme vous pouvez le voir en l'utilisant, IPython etc. ne peut pas compléter l'argument par tabulation. Puisque functools.wapas est utilisé, si vous écrivez correctement la docstring, la docstring peut être affichée même avec une fonction encapsulée par un décorateur.

def time(func):
    """
Décorateur qui ne fait rien
    """
    import functools
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)
    return wrapper

Recommended Posts

Comment mesurer le temps d'exécution avec Python Partie 1
Comment mesurer le temps d'exécution avec Python, partie 2
Comment mesurer le temps de lecture d'un fichier mp3 avec python
Mesure du temps d'exécution avec Python avec
Comment mesurer le temps de traitement avec Python ou Java
Comment télécharger avec Heroku, Flask, Python, Git (Partie 3)
Comment télécharger avec Heroku, Flask, Python, Git (Partie 1)
Comment télécharger avec Heroku, Flask, Python, Git (Partie 2)
Python: comment utiliser async avec
Mesurer le temps d'exécution de la fonction en Python
Comment démarrer avec Python
Python (de la première fois à l'exécution)
Comment calculer la date avec python
Comment utiliser BigQuery en Python
Comment faire un test de sac avec python
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Comment entrer le japonais avec les malédictions Python
Comment installer python3 avec docker centos
[Python3] Définition d'un décorateur qui mesure le temps d'exécution d'une fonction
Comment écrire hors ligne en temps réel Résolution des problèmes F01 avec Python
Comment utiliser Python avec Jw_cad (Partie 1 Qu'est-ce que la transformation externe)
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Comment calculer "xx time" en un seul coup avec Python Timedelta
Comment télécharger avec Heroku, Flask, Python, Git (4)
Comment lire un fichier CSV avec Python 2/3
[REAPER] Comment jouer à Reascript avec Python
Comment faire un traitement parallèle multicœur avec python
Comment installer Python
Temps d'exécution de la fonction (Python)
Stratégie sur la façon de monétiser avec Python Java
Comment implémenter le traitement du temps d'attente avec wxpython
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Comment écrire hors ligne en temps réel J'ai essayé de résoudre E11 avec python
Comment utiliser Python Kivy ④ ~ Exécution sur Android ~
Quittez l'exécution de Python avec Ctrl-C (répond à SIGINT)
[Python] Comment dessiner plusieurs graphiques avec Matplotlib
[Python] Comment lire des fichiers Excel avec des pandas
Comment recadrer une image avec Python + OpenCV
Comment installer python
Comment spécifier des attributs avec Mock of Python
Sortie du temps d'exécution de python
Comment utiliser tkinter avec python dans pyenv
[Python] Comment gérer les caractères japonais avec openCV
[Python] Comment comparer la date / heure avec le fuseau horaire ajouté
Comment écrire en temps réel hors ligne J'ai essayé de résoudre E12 avec python
Comment ajouter de l'aide à HDA (avec bonus de script Python)
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Comment faire un calcul de hachage avec Salt en Python
[Introduction à Python] Comment itérer avec la fonction range?
Expliquez en détail comment créer un son avec python
Comment exécuter des tests avec Python unittest
[Python] Comment spécifier l'emplacement de téléchargement avec youtube-dl
Comment faire un jeu de tir avec toio (partie 1)
Comment utiliser le mode interactif python avec git bash
Pour éviter de passer du temps à colorier des personnages dessinés avec du python
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
[Python] Comment gérer l'erreur de lecture pandas read_html
Comment obtenir le verdict de la molette de la souris avec des malédictions Python