2024-08-01|閱讀時間 ‧ 約 24 分鐘

[Python]查看程式碼占用多少記憶體

對於程式卡頓的問題,如何分析程式碼占用多少記憶體,如何釋放或改寫,可以先用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()

程式詳細說明

  1. 導入 tracemalloc 模組
    import tracemalloc
    tracemalloc 模組,它提供了一個簡單的介面來追蹤記憶體分配。
  2. 開始追蹤記憶體分配
    tracemalloc.start()
    tracemalloc.start() 開始追蹤 Python 程式的記憶體分配。你可以選擇記錄的快取數量,預設為 1。更多的快取可以提供更詳細的歷史資料,但會佔用更多記憶體。
  3. 執行要分析的代碼
    large_list = [i for i in range(100000)]
    這段示例代碼創建了一個包含 100,000 個整數的大列表。這是一個簡單的示例,你可以替換成實際需要分析的代碼。
  4. 讀取當前和峰值記憶體使用量
    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(兆字節)。這些資訊可以幫助你了解程式的記憶體使用情況,找出記憶體佔用高峰。

參考文獻


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.