Maison > développement back-end > Tutoriel Python > Comment utiliser des outils de test de performances tels que la fonction Python exécutant le temps de mémoire

Comment utiliser des outils de test de performances tels que la fonction Python exécutant le temps de mémoire

WBOY
Libérer: 2023-05-10 12:40:13
avant
1047 Les gens l'ont consulté

Fonction de test de base

Tout d'abord, écrivez une fonction Python de base pour divers tests de performances ultérieurs.

def base_func():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
Copier après la connexion

processus memory_profiler

memory_profiler est une bibliothèque non standard de python, elle est donc installée ici en utilisant pip. Il peut surveiller les processus, comprendre l’utilisation de la mémoire, etc.

pip install memory_profiler
Copier après la connexion

Après avoir installé la bibliothèque memory_profiler, utilisez directement les annotations pour tester.

from memory_profiler import profile
@profile
def base_func1():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
base_func1()
# Line #    Mem usage    Increment  Occurrences   Line Contents
# =============================================================
#     28     45.3 MiB     45.3 MiB           1   @profile
#     29                                         def base_func():
#     30     45.3 MiB      0.0 MiB       10001       for n in range(10000):
#     31     45.3 MiB      0.0 MiB       10000           print('当前n的值是:{}'.format(n))
Copier après la connexion

À en juger par les résultats des données renvoyées, 45,3 Mo de mémoire sont utilisés pour exécuter la fonction actuelle.

utilisation du temps timeit

timeit est un module intégré de Python qui peut tester le temps d'exécution du code d'une cellule. Puisqu'il s'agit d'un module intégré, il n'a pas besoin d'être installé séparément.

import timeit
def base_func2():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
res = timeit.timeit(base_func2,number=5)
print('当前的函数的运行时间是:{}'.format(res))
# 当前的函数的运行时间是:0.9675800999999993
Copier après la connexion

Selon le résultat de retour de la fonction ci-dessus, le temps d'exécution de la fonction est de 0,96 seconde.

Détection du code de ligne line_profiler

Si vous avez uniquement besoin de détecter la durée d'exécution locale d'une fonction, vous pouvez utiliser line_profiler, qui peut détecter la durée d'exécution de chaque ligne de code.

line_profiler est une bibliothèque non standard de python Vous pouvez l'installer en utilisant pip.

pip install line_profiler
Copier après la connexion

La façon la plus simple de l'utiliser est d'ajouter directement les fonctions qui doivent être testées.

def base_func3():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
from line_profiler import LineProfiler
lp = LineProfiler()
lp_wrap = lp(base_func3)
lp_wrap()
lp.print_stats()
# Line #      Hits         Time  Per Hit   % Time  Line Contents
# ==============================================================
#     72                                           def base_func3():
#     73     10001     162738.0     16.3      4.8      for n in range(10000):
#     74     10000    3207772.0    320.8     95.2          print('当前n的值是:{}'.format(n))
Copier après la connexion

Vous pouvez voir le temps d'exécution et la proportion de chaque ligne de code à partir des résultats d'exécution. Notez que l'unité de temps ici est subtile.

Détection visuelle de la fréquence cardiaque

La chose la plus recommandée à propos de la fréquence cardiaque est qu'elle peut détecter le processus d'exécution du programme sur la page Web, tout comme la détection de la fréquence cardiaque. En même temps, il s'agit également d'une bibliothèque non standard et peut. être installé en utilisant pip.

pip install heartrate
Copier après la connexion
import heartrate
heartrate.trace(browser=True)
def base_func4():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
Copier après la connexion

Après l'exécution, la console imprime le journal suivant :

#  * Serving Flask app "heartrate.core" (lazy loading)
#  * Environment: production
#    WARNING: This is a development server. Do not use it in a production deployment.
#    Use a production WSGI server instead.
#  * Debug mode: off
Copier après la connexion

et ouvre automatiquement l'adresse du navigateur : http://127.0.0.1:9999

Comment utiliser des outils de test de performances tels que la fonction Python exécutant le temps de mémoire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal