Python 檢查代碼占用內存 工具和模塊


只介紹簡單的使用, 更多使用方法請查看官方文檔

tracemalloc

官方文檔

tracemalloc文檔地址 

使用

import tracemalloc

tracemalloc.start()

# 運行程序
main()

snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')

# 輸出前10條測試結果
print("[ Top 10 ]")
for stat in top_stats[:10]:
    print(stat)

statistics(key_type: strcumulative: bool=False)

將統計信息作為 Statistic 實例分組依據 key_type :

key_type

描述

'filename'

文件名

'lineno'

文件名和行號

'traceback'

追溯

如果 累積的 是 True ,累積跟蹤的所有幀的內存塊大小和計數,而不僅僅是最新幀。累積模式只能用於 key_type 等於 'filename' 和 'lineno' .

結果按以下順序從大到小排序: Statistic.size , Statistic.count 然后由 Statistic.traceback .

memory_profiler

官方文檔

https://pypi.org/project/memory-profiler/

安裝

pip install -U memory_profiler

在腳本外使用

@profile
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a

if __name__ == '__main__':
    my_func()

運行:

python -m memory_profiler example.py

在文件中使用

from memory_profiler import profile

@profile
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a

if __name__ == '__main__':
    my_func()

運行:

python example.py

Heartrate

項目地址

https://github.com/alexmojaki/heartrate

安裝

pip install --user heartrate

使用

# 在需要測試的文件中插入
import heartrate; heartrate.trace(browser=True)

歡迎補充

目前使用過的, 還比較好使的是這些

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM