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))
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
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))
À 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.
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
Selon le résultat de retour de la fonction ci-dessus, le temps d'exécution de la fonction est de 0,96 seconde.
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
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))
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.
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
import heartrate heartrate.trace(browser=True) def base_func4(): for n in range(10000): print('当前n的值是:{}'.format(n))
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
et ouvre automatiquement l'adresse du navigateur : http://127.0.0.1:9999
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!