對於程式卡頓的問題,如何分析程式碼占用多少記憶體,如何釋放或改寫,可以先用python內建的tracemalloc模組來追蹤 Python 分配的記憶體區塊。
本文將介紹最簡單的用法,來分析一段程式碼占用了多少記憶體。
印出當前使用的記憶體,與峰值記憶體使用量。
import tracemalloc
# 開始追蹤 Python 記憶體分配
tracemalloc.start()
# 執行你要分析的代碼
# 示例代碼:創建一個大的列表
large_list = [i for i in range(100000)]
# 記錄所有追蹤記憶體區塊的當前和峰值大小
current, peak = tracemalloc.get_traced_memory()
print(f"當前: {current / 10**6} MB")
print(f"峰值: {peak / 10**6} MB")
# 停止追蹤
tracemalloc.stop()
import tracemalloc
tracemalloc
模組,它提供了一個簡單的介面來追蹤記憶體分配。tracemalloc.start()
tracemalloc.start()
開始追蹤 Python 程式的記憶體分配。你可以選擇記錄的快取數量,預設為 1。更多的快取可以提供更詳細的歷史資料,但會佔用更多記憶體。large_list = [i for i in range(100000)]這段示例代碼創建了一個包含 100,000 個整數的大列表。這是一個簡單的示例,你可以替換成實際需要分析的代碼。
current, peak = tracemalloc.get_traced_memory()
print(f"當前: {current / 10**6} MB")
print(f"峰值: {peak / 10**6} MB")
tracemalloc.get_traced_memory()
函數返回兩個值:當前追蹤的記憶體使用量和峰值記憶體使用量。這些值以字節為單位,所以我們將其除以 1,000,000 以轉換為 MB(兆字節)。這些資訊可以幫助你了解程式的記憶體使用情況,找出記憶體佔用高峰。