Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memprofilkan Penggunaan Memori dalam Kod Python?
Cara Memprofilkan Penggunaan Memori dalam Python
Apabila meneroka algoritma dengan melaksanakan versi naif dan mengoptimumkannya, menganalisis penggunaan memori boleh menjadi penting. Python 3.4 memperkenalkan modul tracemalloc, menawarkan cerapan terperinci tentang segmen kod yang memperuntukkan paling banyak memori.
Menggunakan tracemalloc
import tracemalloc tracemalloc.start() # Code to profile... snapshot = tracemalloc.take_snapshot() # Display top memory-consuming lines top_stats = snapshot.statistics('lineno') for index, stat in enumerate(top_stats[:3], 1): frame = stat.traceback[0] print(f"#{index}: {frame.filename}:{frame.lineno}: {stat.size / 1024:.1f} KiB")
Contoh
Memprofilkan penggunaan memori semasa mengira awalan dalam a senarai perkataan daripada kamus Inggeris Amerika:
import tracemalloc import linecache import os tracemalloc.start() words = list(open('/usr/share/dict/american-english')) counts = Counter() for word in words: prefix = word[:3] counts[prefix] += 1 snapshot = tracemalloc.take_snapshot() display_top(snapshot)
Output
Top 3 lines #1: scratches/memory_test.py:37: 6527.1 KiB words = list(words) #2: scratches/memory_test.py:39: 247.7 KiB prefix = word[:3] #3: scratches/memory_test.py:40: 193.0 KiB counts[prefix] += 1 4 other: 4.3 KiB Total allocated size: 6972.1 KiB
Kod Pengendalian Yang Melepaskan Memori
Jika fungsi memperuntukkan banyak memori dan kemudian mengeluarkan semuanya, secara teknikal ia bukan kebocoran tetapi masih menggunakan secara berlebihan ingatan. Untuk mengambil kira perkara ini, anda perlu mengambil syot kilat semasa fungsi sedang berjalan atau menggunakan benang berasingan untuk memantau penggunaan memori.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memprofilkan Penggunaan Memori dalam Kod Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!