[PYTHON] Écrire la mesure du temps de traitement un peu plus facilement en utilisant la clause with

Mesure commune du temps de traitement

import time

start = time.time()  #Commencer la mesure
do_something()       #Exécuter le traitement de la cible de mesure
end = time.time()    #Fin de la mesure
print 'CalcTime: {}'.format(end-start)

Je me demande si le module à utiliser est time ou datetime.

Qu'est-ce qui ne va pas

Ce n'est pas mauvais. cependant, ** ・ Oubliez de supprimer le début et la fin et validez ** ** ・ Je ne sais pas ce que j'ai écrit pour la mesure car j'ai intégré trop de choses ** ** ・ Il est difficile d'écrire le début et la fin en premier lieu ** Il y a plusieurs choses.

Écrivons en utilisant la clause with

avec clause La caractéristique est que __enter__``` au début et __ exit__``` à la fin sont appelés respectivement. Il est également souvent utilisé pour des traitements tels que les E / S de fichiers. Il semble qu'il puisse être utilisé pour le traitement des mesures lorsqu'il est exécuté au début et à la fin. Quand je l'écris,

import time

#Classe pour mesurer le temps de traitement
class ProcessingTimer(object):

    def __init__(self):
        self.start_time = 0  #Heure de début

    def __enter__(self):
        self.start_time = time.time()

    def __exit__(self, exc_type, exc_val, exc_tb):
        print 'processing time: {}'.format(time.time() - self.start_time)

def func()
  with ProcessingTimer():
    do_something()

Une fois exécuté, cela ressemble à ceci (le résultat est approprié)

>>>> func()
processing time: 0.0352

Je l'ai écrit avec la configuration minimale, mais il semble que diverses choses peuvent être faites en personnalisant le minuteur de traitement. Si vous faites comme ça, quand vous êtes un peu inquiet du temps de traitement ** 1. avec ProcessingTimer (): Ajouter ** ** 2. Indentez collectivement la partie que vous souhaitez mesurer ** Vous pourrez mesurer avec. Lors du retrait ** 1. Effacer avec ProcessingTimer (): ** ** 2. Indentez collectivement la partie mesurée ** Est OK. (J'ai l'impression que c'est pratique pour moi)

Recommended Posts

Écrire la mesure du temps de traitement un peu plus facilement en utilisant la clause with
Mesure du temps à l'aide d'une horloge
Ecrire un serveur TCP à l'aide du module SocketServer
Comment écrire une interface graphique à l'aide de la commande maya
Facilitons un peu la gestion des dépendances avec pip
[Linux] Ecrire un outil de déploiement à l'aide de rsync avec un script shell
Mesure du temps de calcul à l'aide de maf
Utiliser une imprimante avec Debian 10
Mesure du temps d'exécution avec Python avec
Un peu coincé dans le chainer
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Sous Linux, l'horodatage d'un fichier est un peu dépassé.
Une fonction qui mesure le temps de traitement d'une méthode en python
Écrivez un script pour calculer la distance avec le système Elasticsearch 5 sans douleur
Ecrire un réseau résiduel avec TFLearn
Rendre la compilation C un peu plus facile
Écrire un histogramme empilé avec matplotlib
Utiliser une webcam avec Raspberry Pi
Ecrire un script batch avec Python3.5 ~
python> Traitement de la mesure du temps> time.time () --start_time
Réfléchissez à la façon d'écrire un filtre avec les versions Shotgun API-Contact
Comment réparer la population initiale avec un algorithme génétique utilisant DEAP
Recevez une liste des résultats du traitement parallèle en Python avec starmap
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Créer un enregistrement avec des pièces jointes dans KINTONE à l'aide du module de requêtes Python
J'ai créé un outil qui facilite un peu la décompression avec CLI (Python3)
Une note utile lors de l'utilisation de Python après une longue période
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Créez une commande pour rechercher des composés similaires dans la base de données cible avec RDKit et vérifiez le temps de traitement