Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memprofil dan Memantau Penggunaan Memori dengan Berkesan dalam Python?
Bagaimanakah saya boleh menganalisis penggunaan memori dalam Python?
Memprofilkan Penggunaan Memori dalam Python
Python 3.4 memperkenalkan modul tracemalloc untuk analisis mendalam peruntukan memori. Untuk memaparkan statistik peruntukan memori untuk fungsi tertentu:
from tracemalloc import start, take_snapshot, display_top start() # Code to profile memory usage snapshot = take_snapshot() display_top(snapshot)
Memantau Memori Sepanjang Masa
Untuk menjejaki penggunaan memori dalam tempoh lanjutan:
from collections import Counter import time def count_prefixes(): counts = Counter() with open('/usr/share/dict/american-english') as words: words = list(words) for word in words: counts[word[:3]] += 1 time.sleep(0.0001) return counts.most_common(3) count_prefixes() snapshot = take_snapshot() display_top(snapshot)
Menggunakan Benang Asing untuk Pemantauan
Untuk memantau penggunaan memori daripada utas berasingan semasa utas utama berjalan:
from queue import Queue from threading import Thread def memory_monitor(queue): while True: try: command = queue.get(timeout=0.1) if command == 'stop': return snapshot = take_snapshot() print(datetime.now(), 'max RSS', getrusage(RUSAGE_SELF).ru_maxrss) except Empty: continue queue = Queue() monitor_thread = Thread(target=memory_monitor, args=(queue,)) monitor_thread.start() try: count_prefixes() finally: queue.put('stop') monitor_thread.join()
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memprofil dan Memantau Penggunaan Memori dengan Berkesan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!