Une manière intelligente de chronométrer le traitement avec Python

version

Python utilise la version 3.6.0. À stop_watch.py

print(f"{func.__name__}Est{elapsed_time}Ça a pris une seconde")

Cependant, cette notation ne fonctionne que si elle est 3.6.0 ou supérieure. Veuillez réécrire le cas échéant selon votre propre version. Les autres parties ne sont pas confirmées, mais je pense que cela fonctionnera avec 3x.

Article associé

Pour mesurer le temps avec Python, utilisez essentiellement la méthode de l'article suivant.

[Python] Mesurer et afficher le temps de traitement python> Traitement de la mesure du temps> time.time () --start_time Fonction qui mesure le temps de traitement d'une méthode avec python

Vous pouvez également mesurer le temps avec la méthode ci-dessus. Cependant, la logique que vous souhaitez écrire et la mesure du temps sont combinées.

Par conséquent, il existe un moyen intelligent de séparer complètement la logique et la mesure du temps, je vais donc le partager.

Traitement pour mesurer le temps

stop_watch.py


from functools import wraps
import time
def stop_watch(func) :
    @wraps(func)
    def wrapper(*args, **kargs) :
        start = time.time()
        result = func(*args,**kargs)
        elapsed_time =  time.time() - start
        print(f"{func.__name__}Est{elapsed_time}Ça a pris une seconde")
        return result
    return wrapper

Le code ci-dessus est le processus pour mesurer le temps. Un décorateur est utilisé pour ce code. Le traitement réel est stocké dans func, l'heure de début de la mesure est stockée dans start, et le temps nécessaire pour le traitement est stocké dans ʻelaspsed_time`. Si vous souhaitez en savoir plus sur les décorateurs, veuillez écrire en détail dans cet article. 12 étapes pour comprendre les décorateurs Python

Utilisation réelle

test.py


from stop_watch import stop_watch

@stop_watch
def func() :
    j=0
    for i in range(99999999) :
        j+=i
    print(j)

func()

L'utilisation réelle est comme ça. Écrivez simplement @ stop_watch au-dessus de la fonction dont vous voulez mesurer le temps. (* On suppose que le stop_watch.py ci-dessus et le test.py ci-dessus sont dans le même répertoire (dossier). S'ils sont différents, veuillez réécrire le processus d'importation comme il convient)

Le résultat est,

result


4999999850000001
func vaut 6.330682277679443 Cela a pris 2 secondes

Est affiché. Le résultat de la fonction dont vous souhaitez mesurer le temps s'affiche sur la première ligne. Le nom de la fonction dont vous souhaitez mesurer le temps et le temps nécessaire pour exécuter cette fonction sont affichés sur la deuxième ligne.

Sentiments divers

Cela n'a rien à voir avec la logique, mais si vous voulez voir un résultat, le décorateur brillera. Cette fois, il s'agissait de mesurer le temps. J'espère que cela aide quelque chose.

Recommended Posts

Une manière intelligente de chronométrer le traitement avec Python
Comment mesurer le temps de traitement avec Python ou Java
Un moyen simple d'éviter plusieurs boucles for en Python
Un moyen standard de développer et de distribuer des packages en Python
Introduction d'une bonne méthode de gestion des connexions DB en Python
Comment obtenir stacktrace en python
Un moyen simple d'utiliser Wikipedia avec Python
Une fonction qui mesure le temps de traitement d'une méthode en python
Un moyen simple de visualiser le temps pris en Python et un moyen plus intelligent de l'améliorer
Calculons en fait le problème statistique avec Python
Traitement de fichiers en Python
Comment incorporer des variables dans des chaînes python
Traitement multithread en python
Je veux créer une fenêtre avec Python
Comment créer un fichier JSON en Python
Traitement de texte avec Python
Étapes pour développer une application Web en Python
Traitement des requêtes en Python
Pour ajouter un module à python que vous mettez dans Julialang
Comment notifier les canaux Discord en Python
[Python] Comment dessiner un histogramme avec Matplotlib
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Pour représenter la date, l'heure, l'heure et les secondes en Python
Comment arrêter le programme jusqu'à une date et une heure spécifiques en python
Recherche d'un moyen efficace d'écrire un Dockerfile avec Python avec de la poésie
Convertir la date et l'heure zonées en temps Unixtime dans Python2.7
Analyser une chaîne JSON écrite dans un fichier en Python
Comment convertir / restaurer une chaîne avec [] en python
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux écrire en Python! (2) Écrivons un test
[Python] Comment développer des variables dans une chaîne de caractères
J'ai essayé d'implémenter un pseudo pachislot en Python
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Un mémorandum pour exécuter un script python dans un fichier bat
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Choses à noter lors de l'initialisation d'une liste en Python
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
[Python] Création d'une méthode pour convertir la base en 1 seconde
Temps de multiplication à plusieurs chiffres jusqu'à 300 millions de chiffres en python
Comment exécuter une commande à l'aide d'un sous-processus en Python
Points à garder à l'esprit lors du traitement des chaînes en Python2
Correction d'un moyen pour l'UEFI de forcer Windows à démarrer
Publier / télécharger une bibliothèque créée en Python vers PyPI
Points à garder à l'esprit lors du traitement des chaînes en Python 3
Prendre une capture d'écran en Python
Traitement de texte UTF8 avec python
Créer une fonction en Python
Créer un dictionnaire en Python
Une route vers Python intermédiaire
Connectez-vous au site Web en Python
Traitement asynchrone (threading) en python
Créer un bookmarklet en Python
Parler avec Python [synthèse vocale]
[Python] Une autre façon d'importer
Collection de traitement d'image en Python