Untuk mendapatkan statistik profil cepat pada notebook IPython. Seseorang bisa menanamkan line_profiler dan memory_profiler langsung ke notebook mereka.
Paket bermanfaat lainnya adalah Pympler . Ini adalah paket profil yang kuat yang mampu melacak kelas, objek, fungsi, kebocoran memori, dll. Contoh di bawah ini, Documents terlampir.
Mendapatkan!
!pip install line_profiler
!pip install memory_profiler
!pip install pympler
Muat itu!
%load_ext line_profiler
%load_ext memory_profiler
Gunakan!
%waktu
%time print('Outputs CPU time,Wall Clock time')
#CPU times: user 2 µs, sys: 0 ns, total: 2 µs Wall time: 5.96 µs
Memberi:
- Waktu CPU: Waktu pelaksanaan tingkat CPU
- sys times: waktu eksekusi level sistem
- total: waktu CPU + waktu sistem
- Waktu dinding: Waktu Jam Dinding
% timeit
%timeit -r 7 -n 1000 print('Outputs execution time of the snippet')
#1000 loops, best of 7: 7.46 ns per loop
- Memberikan waktu terbaik dari jumlah run (r) tertentu dalam putaran (n) kali.
- Detail keluaran tentang caching sistem:
- Ketika cuplikan kode dieksekusi beberapa kali, sistem membuat cache beberapa operasi dan tidak mengeksekusinya lagi yang dapat menghambat akurasi laporan profil.
% prun
%prun -s cumulative 'Code to profile'
Memberi:
- jumlah panggilan fungsi (panggilan)
- memiliki entri per panggilan fungsi (berbeda)
- waktu yang diambil per panggilan (percall)
- waktu berlalu hingga pemanggilan fungsi (cumtime)
- nama func / modul yang disebut dll ...
% memit
%memit 'Code to profile'
#peak memory: 199.45 MiB, increment: 0.00 MiB
Memberi:
% lprun
#Example function
def fun():
for i in range(10):
print(i)
#Usage: %lprun <name_of_the_function> function
%lprun -f fun fun()
Memberi:
- Statistik garis bijaksana
sys.getsizeof
sys.getsizeof('code to profile')
# 64 bytes
Mengembalikan ukuran objek dalam byte.
asizeof () dari pympler
from pympler import asizeof
obj = [1,2,("hey","ha"),3]
print(asizeof.asizeof(obj,stats=4))
pympler.asizeof dapat digunakan untuk menyelidiki berapa banyak memori yang dikonsumsi objek Python tertentu. Berbeda dengan sys.getsizeof, ukuran objek asizeof rekursif
pelacak dari pympler
from pympler import tracker
tr = tracker.SummaryTracker()
def fun():
li = [1,2,3]
di = {"ha":"haha","duh":"Umm"}
fun()
tr.print_diff()
Melacak masa pakai suatu fungsi.
Paket Pympler terdiri dari sejumlah besar fungsi utilitas tinggi untuk kode profil. Semuanya tidak dapat dibahas di sini. Lihat dokumentasi terlampir untuk implementasi profil verbose.
Dok Pympler