Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan alat ujian prestasi seperti fungsi Python menjalankan masa memori

Cara menggunakan alat ujian prestasi seperti fungsi Python menjalankan masa memori

WBOY
WBOYke hadapan
2023-05-10 12:40:13975semak imbas

Fungsi ujian asas

Mula-mula, tulis fungsi python asas untuk pelbagai ujian prestasi kemudian.

def base_func():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

proses memory_profiler

memory_profiler ialah perpustakaan python bukan standard, jadi pip digunakan untuk memasangnya di sini. Ia boleh memantau proses, memahami penggunaan memori dan banyak lagi.

pip install memory_profiler

Selepas memasang pustaka memory_profiler, terus gunakan anotasi untuk menguji.

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))

Berdasarkan hasil data yang dikembalikan, 45.3 MiB memori digunakan untuk melaksanakan fungsi semasa.

penggunaan masa timeit

timeit ialah modul terbina dalam Python yang boleh menguji masa berjalan kod sel Memandangkan ia adalah modul terbina dalam, ia tidak perlu dipasang secara berasingan.

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

Mengikut hasil pemulangan fungsi di atas, masa berjalan fungsi ialah 0.96 saat.

pengesanan kod baris line_profiler

Jika anda hanya perlu mengesan masa berjalan setempat bagi sesuatu fungsi, anda boleh menggunakan line_profiler, yang boleh mengesan masa berjalan setiap baris kod.

line_profiler ialah perpustakaan ular sawa bukan standard. Gunakan pip untuk memasangnya.

pip install line_profiler

Cara paling mudah untuk menggunakannya ialah dengan menambah terus fungsi yang perlu diuji.

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))

Daripada hasil yang dijalankan, anda boleh melihat masa berjalan dan bahagian setiap baris kod Harap maklum bahawa unit masa di sini ialah mikrosaat.

Pengesan visual degupan jantung

Perkara yang paling disyorkan tentang degupan jantung ialah ia boleh mengesan proses pelaksanaan program di halaman web sama seperti mengesan kadar denyutan jantung juga perpustakaan bukan standard dan boleh dipasang menggunakan pip.

pip install heartrate
rrree

Selepas berjalan, konsol mencetak log berikut:

import heartrate
heartrate.trace(browser=True)
def base_func4():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

dan secara automatik membuka alamat penyemak imbas: http://127.0.0.1:9999

Cara menggunakan alat ujian prestasi seperti fungsi Python menjalankan masa memori

Atas ialah kandungan terperinci Cara menggunakan alat ujian prestasi seperti fungsi Python menjalankan masa memori. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam