Un moyen simple de visualiser le temps pris en Python et un moyen plus intelligent de l'améliorer

Je l'utilise beaucoup, mais je l'oublie souvent, donc je l'ai sorti pour m'en souvenir J'ai l'intention de l'écrire facilement pour les débutants

Pour les gens occupés

Github a publié un décorateur qui affiche le temps de traitement de la fonction. ** Il suffit d'installer avec pip, d'importer et d'ajouter un décorateur à la fonction dont vous souhaitez mesurer le temps de traitement! ** ** Veuillez l'utiliser

Sujet principal: Méthode facile (mais malheureuse?)

Utilisez le standard Python time.time () time.time () renvoie l'heure UNIX actuelle sous forme de nombre à virgule flottante, vous pouvez donc prendre la différence entre l'heure avant et après le traitement.

main.py



import time

start = time.time() #Heure de début d'enregistrement
"""

Écrivez le processus dont vous souhaitez mesurer le temps

"""
end = time.time() #Enregistrez l'heure de fin
proc_time = end - start #Calculer le temps de traitement

print(f"process took {proc_time} seconds") #Afficher le temps de traitement

Juste ça

Un peu décevant?

Intelligemment amélioré avec les décorateurs

↑ Le code est refait dans un décorateur qui mesure le temps de traitement de la fonction pour la rendre plus intelligente

mytools.py



import time
from functools import wraps

def fntime(fn) :
    @wraps(fn)
    def wrapper(*args, **kwargs) :
        start = time.time()
        result = fn(*args, **kwargs)
        end = time.time()
        proc_time = end - start
        print(f"function:{fn.__name__} took {proc_time} seconds")
        return result
    return wrapper

(´-`) .. oO (Je ne le fais pas maintenant, mais je veux expliquer au décorateur un jour ...)

main.py



from mytools import fntime

@fntime
def my_process() :
    """
Traitement que vous souhaitez mesurer
↓ Exemple de traitement
    """
    sum = 0
    for i in range(100000000) :
        sum += i

my_process() #Exécutez le processus que vous souhaitez mesurer

Si vous mettez ces deux fichiers dans le même répertoire et exécutez main.py

Terminal


$ python main.py
function:my_process took 6.954758167266846 seconds

Il sera affiché comme ceci Beau. Génial. mignonne. Comme.

Cependant, cela présente encore quelques inconvénients malheureux. Si vous essayez d'utiliser @ fntime dans un autre répertoire, vous devez copier mytools.py dans ce répertoire.

J'ai donc publié le code sur Github pour ne pas avoir à faire ça. Installez simplement avec pip, importez et ajoutez @ fntime à la fonction! L'avantage de Python est que vous pouvez facilement éviter de réaménager les roues. Veuillez l'utiliser (´-`) .. oO (le code Github est un peu plus facile à voir, comme colorer le nom de la fonction et l'heure, les disposer verticalement)

Veuillez également suivre twitter! Avez-vous généralement beaucoup de tweets d'apprentissage automatique ou Python? En tant qu'ingénieur débutant, il existe de nombreux postes de base

Je publierai de plus en plus de qiita à partir de maintenant! Je veux créer des outils plus simples comme celui-ci

Give me LGTM!

Recommended Posts

Un moyen simple de visualiser le temps pris en Python et un moyen plus intelligent de l'améliorer
Une manière intelligente de chronométrer le traitement avec Python
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel
Un moyen standard de développer et de distribuer des packages en Python
Une histoire qui facilite l'estimation de la surface habitable à l'aide d'Elasticsearch et de Python
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Comment afficher les octets de la même manière en Java et Python
Un moyen simple d'utiliser Wikipedia avec Python
[Python] Le rôle de l'astérisque devant la variable. Divisez la valeur d'entrée et affectez-la à une variable
Comment obtenir la différence de date et d'heure en secondes avec Python
Comment arrêter le programme jusqu'à une date et une heure spécifiques en python
[Python / Jupyter] Traduisez le commentaire du programme copié dans le presse-papiers et insérez-le dans une nouvelle cellule.
J'ai créé un script POST pour créer un problème sur Github et l'enregistrer dans le projet
Comment saisir une chaîne de caractères en Python et la sortir telle quelle ou dans la direction opposée.
Un moyen simple d'appeler Java depuis Python
Pour représenter la date, l'heure, l'heure et les secondes en Python
[Python] Combiner des listes contenant des nombres en chaînes et les écrire dans un fichier de sortie
Comment générer un code QR et un code à barres en Python et le lire normalement ou en temps réel avec OpenCV
Comment enregistrer les informations de point caractéristique de l'image dans un fichier et l'utiliser pour la mise en correspondance
Une histoire sur un ingénieur qui a remarqué l'émo de la cryptographie et tente de l'implémenter en Python
Convertir la date et l'heure zonées en temps Unixtime dans Python2.7
Un moyen simple de vérifier la source des modules Python
Un moyen simple de mesurer la vitesse de traitement d'un disque reconnu par Linux
Script Python qui explore le flux RSS du statut Azure et le publie sur Hipchat
Création d'une bibliothèque Python pour écrire des inclusions complexes et les réduire de manière facile à lire
Le résultat de la création d'un album de cartes de jeunes mariés italiens en Python et de son partage
Un moyen simple de remplir le début de 0 en fonction du nombre de chiffres dans le nombre [Python]
[Selenium] Ouvrez le lien dans un nouvel onglet et déplacez-le [Pilote Python / Chrome]
Comment tester unitaire une fonction contenant l'heure actuelle à l'aide de Freezegun en Python
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
Même les débutants peuvent le faire! Un moyen facile d'écrire un diagramme de Sankey dans Plotly
Essayez de le faire avec GUI, PyQt en Python
[C / C ++] Passez la valeur calculée en C / C ++ à une fonction python pour exécuter le processus et utilisez cette valeur en C / C ++.
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
Comment utiliser la méthode __call__ dans la classe Python
Probablement le moyen le plus simple de créer un pdf avec Python 3
Comment démarrer le PC à une heure fixe chaque matin et exécuter le programme python
J'ai créé un programme en Python qui change les données de 1 minute de FX en une heure arbitraire (1 heure, etc.)
Un moyen simple d'éviter plusieurs boucles for en Python
Conseils pour coder courts et faciles à lire en Python
[Super facile! ] Comment afficher le contenu des dictionnaires et des listes incluant le japonais en Python
J'ai essayé d'illustrer le temps et le temps du langage C
Je souhaite améliorer l'efficacité avec Python même dans les systèmes expérimentaux (2) RS232C et pySerial
Créer un environnement Python et transférer des données vers le serveur
Recherche d'un moyen unifié d'attendre et d'obtenir les changements d'état de Selenium pour les éléments Python
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Obtenez la date et l'heure actuelles en Python, en tenant compte du décalage horaire
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
J'ai converti le temps en un entier, je l'ai décomposé en facteurs premiers et j'ai fait un bot pour tweeter le résultat (matériel xkcd)
Introduction d'une bonne méthode de gestion des connexions DB en Python
Un débutant en python a essayé de faire un stage dans une entreprise informatique
Essayez simplement de recevoir un webhook avec ngrok et Python
PyArmor ~ Un moyen facile de chiffrer et de fournir du code source Python ~