如何分析 Python 中的記憶體使用情況?
分析 Python 中的記憶體使用量
Python 3.4引入了tracemalloc模組來深入分析記憶體分配。要顯示特定函數的記憶體分配統計資料:
from tracemalloc import start, take_snapshot, display_top start() # Code to profile memory usage snapshot = take_snapshot() display_top(snapshot)
隨時間監控記憶體
要追蹤一段時間內的記憶體使用情況:
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)
使用單獨的執行緒監控
在主執行緒執行緒的記憶體使用情況:
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()
以上是如何有效分析和監控 Python 中的記憶體使用情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!