Latar Belakang:
Mengoptimumkan kod untuk kecekapan memori menjadi penting apabila meneroka algoritma dan prestasinya . Untuk mencapai matlamat ini, pemantauan penggunaan memori adalah penting.
Analisis Memori Python:
Python menyediakan fungsi timeit untuk pemprofilan masa jalan. Walau bagaimanapun, untuk analisis memori, Python 3.4 memperkenalkan modul tracemalloc.
Menggunakan tracemalloc:
Untuk memprofilkan penggunaan memori dengan tracemalloc:
import tracemalloc # Start collecting memory usage data tracemalloc.start() # Execute code to analyze memory usage # ... # Take a snapshot of the memory usage data snapshot = tracemalloc.take_snapshot() # Display the top lines with memory consumption display_top(snapshot)
Lain-lain pendekatan:
1. Thread Monitor Memori Latar Belakang:
Pendekatan ini mencipta utas berasingan yang memantau penggunaan memori secara berkala manakala utas utama melaksanakan kod:
import resource import queue from threading import Thread def memory_monitor(command_queue, poll_interval=1): while True: try: command_queue.get(timeout=poll_interval) # Pause the code execution and record the memory usage except Empty: max_rss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss print('max RSS', max_rss) # Start the memory monitor thread queue = queue.Queue() poll_interval = 0.1 monitor_thread = Thread(target=memory_monitor, args=(queue, poll_interval)) monitor_thread.start()
2. Menggunakan /proc/self/statm (Linux Sahaja):
Di Linux, fail /proc/self/statm menyediakan statistik penggunaan memori yang terperinci, termasuk:
Size Total program size in pages Resident Resident set size in pages Shared Shared pages Text Text (code) pages Lib Shared library pages Data Data/stack pages
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memprofilkan Penggunaan Memori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!